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


Мне нужно получить данные 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-данные?

2 73

2 ответа:

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

добавить эту строку:

 request.ContentType = "application/json; charset=utf-8";
в нужном месте

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

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

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