我正在为Visual Studio 2011编程,因此我被迫使用HttpClient
。我需要从网上检索一些JSON数据,但我想我需要将内容设置为“json数据”或其他东西,因为我只使用这段代码时总是会遇到奇怪的字符:
HttpClient client = new HttpClient();
var response = client.Get("http://api.stackoverflow.com/1.1/users");
var content = response.Content.ReadAsString();
那么如何设置内容或我该怎么做才能获得正确的数据?
编辑:
输出:类似这样:
答案 0 :(得分:29)
问题是响应是压缩的,HttpClient
默认情况下不会自动解压缩。
使用WebClient
,您可以create a derived class and set the AutomaticDecompression
of the underlying HttpWebRequest
。
您不能使用HttpClient
执行此操作,因为它没有任何合适的virtual
方法。但是你可以通过将HttpClientHandler
传递给它的构造函数来完成它:
var client =
new HttpClient(
new HttpClientHandler
{
AutomaticDecompression = DecompressionMethods.GZip
| DecompressionMethods.Deflate
});