как получить json обратно от вызова httplclient? - PullRequest
0 голосов
/ 28 февраля 2020

Мне трудно получить данные как json из API остальных SharePoint, используя HTTPClient. Возвращает данные как xml. Я пытаюсь установить заголовки для возврата json, но, видимо, я не делаю правильно. Может кто-нибудь помочь, пожалуйста?

Это мой код, который я сейчас тестирую:

 using (var client = new HttpClient())
                {
                    client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Authorization","NTLM");

                    //client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
                    //client.DefaultRequestHeaders.Add("Content-Type", "application/json;odata=verbose");
                    HttpRequestMessage msg = new HttpRequestMessage(HttpMethod.Get, "http://sp2016/_api/lists/getbytitle('Holidays')/items");
                    msg.Content = new StringContent(string.Empty, Encoding.UTF8, "application/json");
                    HttpResponseMessage response = await client.SendAsync(msg);
                    response.Content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
                    //var result = await client.GetAsync(new Uri("http://sp2016/_api/lists/getbytitle('Holidays')/items"));

                    //if (result.IsSuccessStatusCode) { 
                    var content = await response.Content.ReadAsStringAsync();
                        var data = JsonConvert.DeserializeObject<Holidays>(content);
                }

1 Ответ

0 голосов
/ 29 февраля 2020

Обычно вы должны включать заголовок Accept вместе с запросом. Некоторые серверы с несколькими выходными форматами используют это для определения типа возвращаемого содержимого.

var request = new HttpRequestMessage();
request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
...