Я получил системную ошибку в посте C # - PullRequest
0 голосов
/ 30 июня 2018

Я впервые задаю вопрос здесь (я из Азии).

Платформа: UWP 17632

IDE: Visual Studio 2017

Исходя из требований проекта , Мне нужно разместить некоторую информацию на веб-сайте.

Я ссылаюсь на ответ о Как сделать HTTP POST веб-запрос Метод A.

enter image description here

Вот мой код:

public async void PostDataAsync(string pTemperture, string pHumidity, string pFireStatus, string pLightStatus, string pBodyStatus)
   {
       var values = new Dictionary<string, string>
           {
               {"count", "1" },
               {"temperture_0", pTemperture },
               {"Humidity_0", pHumidity },
               {"FireStatus_0", pFireStatus },
               {"LightStatus_0" ,pLightStatus},
               {"BodyDetect_0", pBodyStatus }
           };
       var content = new FormUrlEncodedContent(values);
       try
       {
           var response = await client.PostAsync("http://115.159.36.210/api/onehome/upload", content);//Here throw an exception
           System.Diagnostics.Debug.WriteLine(response);
           var responseString = response.Content.ReadAsStringAsync();
           System.Diagnostics.Debug.WriteLine(responseString);
       }
       catch (Exception ex)
       {
           System.Diagnostics.Debug.WriteLine(ex.HelpLink);
           System.Diagnostics.Debug.WriteLine(ex.Message);
           throw;
       }            
   }

А потом выдает исключение

“An error occurred while sending the request.” 

в

var response = await client.PostAsync("http://115.159.36.210/api/onehome/upload", content);

Я хочу знать, почему и найти решение, которое может решить его.
Буду благодарен, если вы сможете мне помочь.

Ответы [ 2 ]

0 голосов
/ 03 июля 2018

Я автор сервера.

Реальность такова, что я не закончу код сервера.

Таким образом, {"status":-1,"msg":"Error! Invalid Request."} является результатом по умолчанию .....

0 голосов
/ 02 июля 2018

Рекомендуется использовать HttpClient и остальную часть API-интерфейса пространства имен Windows.Web.Http для отправки и получения информации с использованием протоколов HTTP 2.0 и HTTP 1.1 в UWP.

По вашему требованию вы можете создать метод для упаковки http POST-метода, как показано ниже

public async void SendPostMethod(string url, Dictionary<string, string> param, Action<string> response)
{
    HttpClient client = new HttpClient();

    HttpResponseMessage httpResponse = new HttpResponseMessage();
    Uri requestUri = new Uri(url);

    var content = new HttpFormUrlEncodedContent(param);
    try
    {
        httpResponse = await client.PostAsync(requestUri, content);

        response(await httpResponse.Content.ReadAsStringAsync());
    }
    catch (Exception ex)
    {

    }

}

Использование

 this.SendPostMethod("http://115.159.36.210/api/onehome/upload",Param, (res) =>
{

    var response = res;

});

И есть официальные примеры кода и документ , на которые вы могли бы сослаться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...