Данные ответа не указываются в данных поста в ASP.NET MVC - PullRequest
0 голосов
/ 02 сентября 2018

Я отправляю запрос в API, но получаю значение NULL, но когда я выполняю тот же API в swagger, я получаю результат обратно.

Ниже мой код ASP.NET:

HttpClient client = new HttpClient();

var data = new
            {
                test = "mydata"
            };

client.BaseAddress = new Uri("weburl.com");
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));

using (client)
{
    HttpResponseMessage res = await client.PostAsJsonAsync("api/test", data);

    if (res.ReasonPhrase == "OK")
    {
        res.EnsureSuccessStatusCode();

        if (res.IsSuccessStatusCode)
        {
            var resualt = res.Content;
            var res2 = await resualt.ReadAsStringAsync();
            var json = JsonConvert.DeserializeObject<JsonModelApi>(res2);

            if (json.Succeed)
            {
                return json.Result;
            }
            else 
                return null;
        }
        else 
            return null;
    }
    else 
        return null;
}

HttpResponseMessage res = await client.PostAsJsonAsync("api/test", data);

разрешение на выходе:

{StatusCode: 200, ReasonPhrase: 'OK', Версия: 1.1, Содержимое: System.Net.Http.StreamContent, Заголовки: { Варьируется: Accept-Encoding Защитить: SA Дата: вс, 02 сентября 2018 11:20:16 GMT Cookie-набор: __cfduid = dd54b1f82b2eb402e21bae199246157631535887216; истекает = понедельник, 02 сентября 19 11:20:16 по Гринвичу; Путь = /; домен = .myweb; HttpOnly X-Powered-By: Huricane 11 X-Powered-By: ASP.NET Сервер: cloudflare CF-RAY: 453f961cb483bead-FRA Подключение: keep-alive Длина контента: 0 }}

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

Спасибо.

Ответы [ 2 ]

0 голосов
/ 03 сентября 2018

Попробуйте это может быть его работа:

var data = await MobileService.Client.InvokeApiAsync<RETURN TYPE, SEND_TYPE>($"api/test", 
HttpMethod_TYPE, null);
0 голосов
/ 03 сентября 2018

Я решил проблему с этим кодом:

            client.BaseAddress = new Uri("mywebapi");
            client.DefaultRequestHeaders.UserAgent.ParseAdd("Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0");
            client.DefaultRequestHeaders.Accept.Clear();
            client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));

с добавленным пользовательским агентом в HttpClient, я мог бы привести к содержанию:

            client.DefaultRequestHeaders.UserAgent.ParseAdd("Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...