【发布时间】:2019-12-15 01:02:48
【问题描述】:
我正在使用 HttpRequestMessage/HttpResponseMessage 进行发布请求。一切正常,我将响应转换为长度正确的字符串,但如果我想显示原始字符串,它只返回一个问号字符(?),没有别的,好像输出只是一/两个字符的长度。
我尝试将字符串解码为 UTF8,还是一样。
这是我的代码:
var targetUrl = new Uri("https://www.targetUrl.com/");
var postData = GetPostData;
var request = httpClientHelp.GetRequest(HttpMethod.Post, targetUrl, postData);
var response = Await httpRequestProcess.SendAsync(request);
var data = Await response.Content.ReadAsStringAsync();
Debug.WriteLine(data.Length); // Correct, i.e. 5686
Debug.WriteLine(data); // Just displays "?"
//。这是 httpRequestProcess 类中的 SendAsync 函数:
public async Task<HttpResponseMessage> SendAsync(HttpRequestMessage requestMessage)
{
var response = await Client.SendAsync(requestMessage);
return response;
}
Here is the difference between the string content and its length
如果我复制那个问号,输出是多组未知字符,例如: � �
【问题讨论】:
-
试试
Convert.FromBase64String(data); -
这行不通,阿南特。它与字符串混淆并引发异常。
-
这是一个很长的字符串。字符串的长度与我预期的响应相匹配。
-
我认为这正是 Fiddler 在解码响应之前显示的结果:prntscr.com/opizvi/direct 但是我如何像 Fiddler 那样对其进行解码呢?这是什么类型的编码?
-
@SachinVishwakarma 我解决了这个问题。将立即更新我的主题。