Как получить ответ JSON с помощью system.net.webrequest в C #? - PullRequest
77 голосов
/ 21 января 2010

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

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

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

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

Ответы [ 2 ]

71 голосов
/ 04 марта 2011

Некоторые 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";
64 голосов
/ 16 сентября 2010

Вам необходимо явно запросить тип контента.

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

<code> request.ContentType = "application/json; charset=utf-8";
В соответствующем месте
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...