86

我需要从外部域获取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数据?

4

2 回答 2

75

一些 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";
于 2011-03-04T18:06:59.483 回答
70

您需要明确询问内容类型。

添加这一行:

 request.ContentType = "application/json; charset=utf-8";
在适当的地方

于 2010-09-16T18:42:30.437 回答