Метод Xamarin POST не возвращает правильное значение - PullRequest
0 голосов
/ 02 июня 2019

У меня проблема с отправкой запроса POST и получением ответа.Я создал локальный PHP-скрипт, который возвращает некоторые строковые значения, и я не могу заставить его работать с Xamarin.

Это метод, который я использую для отправки запроса:

public async Task<string> Post_Request()
{
    var request = new HttpRequestMessage();
    request.RequestUri = new Uri("http://localhost/server.php");
    request.Method = HttpMethod.Post;
    request.Headers.Add("Accept", "application/json");
    var client = new HttpClient();
    HttpResponseMessage response = await client.SendAsync(request).ConfigureAwait(continueOnCapturedContext: false);
    if (response.StatusCode == HttpStatusCode.OK)
    {
        return "OK";
    }
    else
    {
        return "BAD!";
    }
}

При отладке программа не переходит в ветки кода if или else в условии «if (response.StatusCode == HttpStatusCode.OK)».

Это мой PHP-скрипт:

<?php
return 
"
{
"user":"01",
"name":"ime"
}
"
//echo "OK";
?>

1 Ответ

0 голосов
/ 03 июня 2019

Это образец запроса, который я использовал.

var objRequest = new CustomerDetailsRequest() {
    customerId = 1
};

string url = $"/api/v1/CustomerDetails";
var requestBody = await Task.Run(() => JsonConvert.SerializeObject(objRequest));
using (var httpClient = new HttpClient())
{
    CustomerDetailsResponse data = new CustomerDetailsResponse();
    try
    {
        httpClient.BaseAddress = new Uri("http://localhost:3000");
        var content = new StringContent(requestBody, Encoding.UTF8, "application/json");
        var result = await httpClient.PostAsync(url, content);
        var response = await result.Content.ReadAsStringAsync();
        data = JsonConvert.DeserializeObject<CustomerDetailsResponse>(response);

        if (result.IsSuccessStatusCode && result.StatusCode == HttpStatusCode.OK)
        {
            return data;
        }

        return null;
    }
    catch (Exception exp)
    {
        return null;
    }
}

Дайте мне знать, если это сбивает с толку

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