我在.NET Core 2.1中拥有一个WebAPI。我已使用RestSharp访问该API。当我发送请求(POST)时,我总是在响应中收到以下消息:
{System.Net.WebException:获取响应流(ReadAsync)时出错:ReceiveFailure值不能为空。参数名称:src ---> System.ArgumentNullException:值不能为空。参数名称:System.Net上的src。 HttpWebRequest + d__241 1[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]在System.Net.WebResponseStream + d__48.MoveNext()的<43dbbdc147f2482093d8409abb04c233>:0中:: 0 ---结束内部异常堆栈跟踪---位于System.Net.WebConnectionStream.Read(System.Byte []缓冲区,System.Int32偏移量,System.Int32计数)[0x00077],位于0处,位于RestSharp.Extensions.MiscExtensions.ReadAsBytes(系统。 IO.Stream输入)在RestSharp.Http.ProcessResponseStream的<4b0c1fc6e5a94482990701acc6dec8b3>:0中[0x0001f](System.IO.Stream webResponseStream,RestSharp.HttpResponse响应)[0x0000e]在<4b0p1pse3ResestDataResponseResponseResponseData(0.0000e] .HttpResponse响应,System.Net.HttpWebResponse webResponse)[4x0c1fc中的[0x0004c]在RestSharp.Http.GetRawResponseSystem。 1 [T]回调)[0x0005a]在<4b0c1fc6e5a94482990701acc6dec8b3>:0}
我的服务的先前版本(.NET Framework 4.7)正常运行,但我的新版本却无效。我检查了URL,没关系,并且该服务在Swagger和Postman上正常工作,并且在服务器上配置了SSL证书,但是在App中,我继续收到此类消息。
我的服务托管在Microsoft Azure上。
有人想帮助我吗?
答案 0 :(得分:-1)
好的。我解决了。
我有以下代码:
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负责序列化我的对象。
它现在正在工作。