我有发送HttpRequest并获取字符串json的代码。该代码可以正常工作,但是当服务器启动secret_base_key
时,它包含菱形和不可读的字符串,我尝试使用缓冲区并将文本读入stringBuilder,但效果不佳。我在一些答案中看到HttpWebRequest已过时,应该使用HttpClient。我已经在HttpClient中重写了我的代码,但问题仍然相同。我在浏览器中打开了url,并且工作正常,加载过程花了几秒钟,而且看不到传输编码的Chunked。
请检查代码,
sending tranfer-encoding chunked response
我已经应用了8192字节的缓冲区并从SO读取,因此无法使用此代码,并且在过去的几个小时中尝试了许多来自SO的代码。请检查我的代码有什么问题。我可以在标头中设置一些内容,以便对成块的html简单说不,还是可以从响应中读取成块的html。
答案 0 :(得分:0)
根据您的代码,返回的json不是字符串格式,而是字节数组? 与服务器端有关,服务器在发回之前是否对内容进行编码? 抱歉,我正在尝试添加评论,但是我的水平太低了,我只能发表答案,希望我的一些想法可以有所帮助。
在我的服务器端项目中,我们使用下面的代码发送响应
public System.Net.Http.HttpResponseMessage GetServiceStatus()
{
......
string sJsonRet = JsonHelper.Serialize(rspMsg);
System.Net.Http.HttpResponseMessage resp = new System.Net.Http.HttpResponseMessage(System.Net.HttpStatusCode.OK);
resp.Content = new System.Net.Http.StringContent(sText,System.Text.Encoding.UTF8, "text/plain");
return resp;
}
客户端,您总是会获得纯文本字符串,并且我们使用System.Net.WebClient。
internal void GetServiceStatusCompleted(object sender, UploadStringCompletedEventArgs e){
......
string response = e.Result;
if ((response != null) && (response.Length > 0))
status = (ServiceStatusMsg)JsonHelper.Deserialize(typeof(ServiceStatusMsg), response);
}