0
我正在做一个HttpWebRequest
到服务器。这是JSON。现在,响应编码如下:C#HttpWebResponse返回编码的响应
�\b\0\0\0\0\0\0��A� @ѻ�U�0l�u�\v�v�...
我可以看到我的请求在Fiddler中成功。我可以看到服务器的响应是正确的。但是,在小提琴手中,它也需要我先解码答案。
我不知道如何解码这在C#中。
我正在做一个HttpWebRequest
到服务器。这是JSON。现在,响应编码如下:C#HttpWebResponse返回编码的响应
�\b\0\0\0\0\0\0��A� @ѻ�U�0l�u�\v�v�...
我可以看到我的请求在Fiddler中成功。我可以看到服务器的响应是正确的。但是,在小提琴手中,它也需要我先解码答案。
我不知道如何解码这在C#中。
这里有一些示例代码应该完全按照你的意愿来做。 BatchCollection在我的情况下是我自己的映射到JSON的对象,所以它可以在解压缩后映射。
var request = (HttpWebRequest)WebRequest.Create(uri);
request.Method = "POST";
request.Headers = headers;
request.Headers.Add("Content-Encoding", "gzip");
request.AutomaticDecompression = DecompressionMethods.GZip;
request.ContentType = "application/json";
var json = JsonConvert.SerializeObject(batchCollection);
using (Stream requestStream = request.GetRequestStream())
{
var buffer = Encoding.UTF8.GetBytes(json);
using (GZipStream compressionStream = new GZipStream(requestStream, CompressionMode.Compress, true))
{
compressionStream.Write(buffer, 0, buffer.Length);
}
}
var response = (HttpWebResponse)request.GetResponse();
BatchCollection batchOut = null;
using (Stream responseStream = response.GetResponseStream())
{
var reader = new StreamReader(responseStream);
var jsonOut = reader.ReadToEnd();
reader.Close();
batchOut = JsonConvert.DeserializeObject<BatchCollection>(jsonOut);
}
return batchOut;
它是gzip编码还是你知道编码是什么?这很难回答,它就像是“这里有一堆JSON格式的混乱数据,告诉我如何解码它”,不知道它是如何编码的,我们不能说如何解码它...... –
做你的意思是*编码*(如UTF-16与UTF-8)或*压缩*(如gzip)或* encrypted *(为了安全)?这是一个HTTPS电话吗? –
是的,你说得对。 Headers.Add(“Accept-Encoding:gzip,deflate”)。它没有为安全加密,它可能只是gzip。 – Pmx88