Xamarin + RestSharp + .Net Core Web API - значение не может быть нулевым. Имя параметра: src - PullRequest
0 голосов
/ 27 августа 2018

У меня есть WebAPI в .NET Core 2.1 e Я использую RestSharp для доступа к API.Когда я отправляю запрос (POST), я всегда получаю следующее сообщение в ответе:


{System.Net.WebException: ошибка при получении потока ответа (ReadAsync): значение ReceiveFailure не может быть нулевым. Параметрназвание: SRC ---> System.ArgumentNullException: Значение не может быть именем null.Parameter: SRC на System.Net.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] в <43dbbdc147f2482093d8409abb04c233>: 0в System.Net.WebResponseStream + d__48.MoveNext () [0x00253] in: 0 --- Конец трассировки внутреннего стека исключений --- в System.Net.WebConnectionStream.Read (System.Byte [], смещение System.Int32, Подсчет System.Int32) [0x00077] в: 0 в RestSharp.Extensions.MiscExtensions.ReadAsBytes (вход System.IO.Stream) [0x0001f] в <4b0c1fc6e5a94482990701acc6dec8b3>: 0 в RestSharp.Resp.StonStreamStreamStreamStreamStreamStreamStreamStreamStreamStreamStreamStreamSt.StuSt.Str (., Ответ RestSharp.HttpResponse) [0x0000e] в <4b0c1fc6e5a94482990701acc6dec8b3>: 0 в RestSharp.Http.ExtractResponseData (RestSharОтвет p.HttpResponse, System.Net.HttpWebResponse WebResponse) [0x0004c] в <4b0c1fc6e5a94482990701acc6dec8b3>: 0 в RestSharp.Http + <> c__DisplayClass20_0.b__0 (System.Net.HttpWebResponse WebResponse) [0x00001] в <4b0c1fc6e5a94482990701acc6dec8b3>: 0 в RestSharp.Http.GetRawResponseAsync (результат System.IAsyncResult, обратный вызов System.Action 1[T] callback) [0x00050] in <4b0c1fc6e5a94482990701acc6dec8b3>:0 at RestSharp.Http.ResponseCallback (System.IAsyncResult result, System.Action 1 [T]) [0x0005a] в <4b0c1fc6e5a94482990701acc6dec8b3>: 0}


. Предыдущая версия платформы моей среды4.7) работал, но моей новой версии нет.Я проверил URL, и это нормально, и служба работает на Swagger и Postman, и у меня настроен SSL-сертификат на сервере, но в приложении я продолжаю получать такое сообщение.

Моя служба размещенав Microsoft Azure.

Кто-нибудь может мне помочь?

1 Ответ

0 голосов
/ 28 августа 2018

Хорошо.Я решил.

У меня был следующий код:

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 отвечает за сериализацию моего объекта.

Это работает прямо сейчас.

...