web-dev-qa-db-ja.com

C#でsystem.net.webrequestを使用してjson応答を取得する方法は?

外部ドメインからJSONデータを取得する必要があります。 webrequestを使用して、Webサイトから応答を取得しました。コードは次のとおりです。

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

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

JSONデータを取得できない理由は誰でも知っていますか?

77
h3n

コンテンツタイプを明示的に要求する必要があります。

次の行を追加します。

 request.ContentType = "application/json; charset=utf-8";
64
Oren A

一部の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";
71
Martin Buberl