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.ConfiguredTaskAwaitable
1+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.Action
1 [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 负责序列化我的对象。
它现在正在运行。
我在 .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.ConfiguredTaskAwaitable
1+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.Action
1 [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 负责序列化我的对象。
它现在正在运行。