Xamarin + RestSharp + .Net Core Web API - 值不能是 null.Parameter name: src

Xamarin + RestSharp + .Net Core Web API - Value cannot be null.Parameter name: src

我在 .NET Core 2.1 中有一个 WebAPI e 我使用 RestSharp 访问 API。当我发送请求 (POST) 时,我总是在响应中收到以下消息:


{System.Net.WebException:获取响应流时出错(ReadAsync):ReceiveFailure 值不能是 null.Parameter 名称:src ---> System.ArgumentNullException:值不能是 null.Parameter名称:src at System.Net.HttpWebRequest+d__2411[T].MoveNext () [0x000ba] in <b78695579ed9422b8bc80218eeda782c>:0 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Threading.Tasks.Task task) [0x0003e] in <43dbbdc147f2482093d8409abb04c233>:0 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Threading.Tasks.Task task) [0x00028] in <43dbbdc147f2482093d8409abb04c233>:0 at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (System.Threading.Tasks.Task task) [0x00008] in <43dbbdc147f2482093d8409abb04c233>:0 at System.Runtime.CompilerServices.ConfiguredTaskAwaitable1+ConfiguredTaskAwaiter[TResult].GetResult () [0x00000] in <43dbbdc147f2482093d8409abb04c233>:0 at System.Net.WebResponseStream+d__48.MoveNext () [0x00253] in :0 --- 内部异常堆栈跟踪结束 --- 在 System.Net.WebConnectionStream.Read(System.Byte[] 缓冲区,System.Int32 偏移量,System.Int32 计数)[0x00077] in :0 at RestSharp.Extensions.MiscExtensions.ReadAsBytes (System.IO.Stream input) [0x0001f] in <4b0c1fc6e5a94482990701acc6dec8b3>:0 at RestSharp.Http.ProcessResponseStream (System.IO.Stream webResponseStream, RestSharp.HttpResponse response) [0x0000e]在 <4b0c1fc6e5a94482990701acc6dec8b3>:0 at RestSharp.Http.ExtractResponseData (RestSharp.HttpResponse response, System.Net.HttpWebResponse webResponse) [0x0004c] in <4b0c1fc6e5a94482990701acc6dec8b3>:0 at RestSharp.Http+<>c__DisplayClass20_0 .b__0 (System.Net.HttpWebResponse webResponse) [0x00001] 在 <4b0c1fc6e5a94482990701acc6dec8b3>:0 在 RestSharp.Http.GetRawResponseAsync (System.IAsyncResult 结果, System.Action1[T] callback) [0x00050] in <4b0c1fc6e5a94482990701acc6dec8b3>:0 at RestSharp.Http.ResponseCallback (System.IAsyncResult result, System.Action1 [T] 回调) [0x0005a] 在 <4b0c1fc6e5a94482990701acc6dec8b3>:0 }


我的服务的先前版本 (.NET Framework 4.7) 可以正常工作,但我的新版本不能。我检查了 URL 没问题,服务在 Swagger 和 Postman 上运行,我在服务器上配置了 SSL 证书,但在应用程序中我继续收到这样的消息。

我的服务托管在 Microsoft Azure 上。

有没有人可以帮助我?

好的。我解决了。

我有以下代码:

IRestRequest request = new RestRequest(method, Method.POST);

request.AddParameter("SampleKey", "SampleValue");

我不知道为什么它使用 .Net Framework WebApi,但不使用 .Net Core WebApi。

我可以使用以下代码解决:

IRestRequest request = new RestRequest(method, Method.POST);

request.AddJsonBody(objBody);

使用新方法,RestSharp 负责序列化我的对象。

它现在正在运行。