如何使用c#中的system.net.webrequest获得json响应?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (82)

我需要从外部域获取json数据。我使用网络请求从一个网站获得响应。下面是代码:

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

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

有人知道我为什么得不到JSON的数据吗?

提问于
用户回答回答于

需要明确询问内容类型。

添加以下行:

 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";

扫码关注云+社区

领取腾讯云代金券