C#中HttpClient Post请求响应内容乱码问题求助
解决HttpClient请求响应乱码问题
你的乱码内容开头是\u001f�\b,这是GZip压缩数据的特征码,说明服务器返回了GZip压缩后的响应,但你的HttpClient实例默认没有开启自动解压功能——Postman会自动处理压缩响应,所以能正常显示。另外原代码的请求头也缺少Postman自动携带的关键字段,这也可能影响服务器的响应格式。
修复步骤:
开启HttpClient自动解压
创建HttpClient时,通过HttpClientHandler配置AutomaticDecompression,让客户端自动处理GZip/Deflate压缩的响应:var handler = new HttpClientHandler { AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate }; HttpClient client = new HttpClient(handler);补全请求头(匹配Postman行为)
- 给
StringContent指定正确的Content-Type(Postman默认发送JSON时会设为application/json) - 添加
Accept头声明接受JSON格式,Accept-Encoding声明支持压缩:
var tokenRequest = new HttpRequestMessage(HttpMethod.Post, url); // 指定JSON内容类型和编码 var jsonContent = JsonConvert.SerializeObject(new object {}); tokenRequest.Content = new StringContent(jsonContent, Encoding.UTF8, "application/json"); // 添加请求头 tokenRequest.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); tokenRequest.Headers.AcceptEncoding.Add(new StringWithQualityHeaderValue("gzip")); tokenRequest.Headers.AcceptEncoding.Add(new StringWithQualityHeaderValue("deflate"));- 给
完整修正代码:
var handler = new HttpClientHandler { AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate }; using HttpClient client = new HttpClient(handler); var tokenRequest = new HttpRequestMessage(HttpMethod.Post, url); var jsonContent = JsonConvert.SerializeObject(new object {}); tokenRequest.Content = new StringContent(jsonContent, Encoding.UTF8, "application/json"); tokenRequest.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); tokenRequest.Headers.AcceptEncoding.Add(new StringWithQualityHeaderValue("gzip")); tokenRequest.Headers.AcceptEncoding.Add(new StringWithQualityHeaderValue("deflate")); var tokenResponse = await client.SendAsync(tokenRequest); tokenResponse.EnsureSuccessStatusCode(); var content = await tokenResponse.Content.ReadAsStringAsync();
验证方法:
可以先检查响应头的Content-Encoding字段,如果值为gzip或deflate,说明确实是压缩未处理导致的乱码,上述修复即可解决。
内容的提问来源于stack exchange,提问作者Yohancef Chin
相关产品推荐
相关产品推荐

