Как получить ответ json с помощью system.net.webrequest в С#?

Мне нужно получить данные json из внешнего домена. Я использовал webrequest, чтобы получить ответ с веб-сайта. Здесь код:

var request = WebRequest.Create(url);
string text;
var response = (HttpWebResponse) request.GetResponse();

using (var sr = new StreamReader(response.GetResponseStream()))
{
    text = sr.ReadToEnd();
}

Кто-нибудь знает, почему я не могу получить данные json?

Ответ 1

Вам нужно явно задать тип содержимого.

Добавьте эту строку:

 request.ContentType = "application/json; charset=utf-8";
At the appropriate place

Ответ 2

Некоторые API-интерфейсы хотят, чтобы вы предоставили соответствующий заголовок "Принять" в запросе, чтобы получить желаемый тип ответа.

Например, если API может возвращать данные в XML и JSON, и вы хотите получить результат JSON, вам нужно будет установить HttpWebRequest.Accept свойство "application/json" .

HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create(requestUri);
httpWebRequest.Method = WebRequestMethods.Http.Get;
httpWebRequest.Accept = "application/json";