我正在使用 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. 5686Debug.WriteLine(data); // Just displays "?"http://。以下是 httpRequestProcess 類中的 SendAsync 函數:public async Task<HttpResponseMessage> SendAsync(HttpRequestMessage requestMessage){? ? var response = await Client.SendAsync(requestMessage);? ? return response;}如果我復制該問號,輸出是多組未知字符,例如:? ?
1 回答

元芳怎么了
TA貢獻1798條經驗 獲得超7個贊
標頭的默認編碼是“gzip、deflate、br”,如 Fiddler 中所示。我所要做的就是使用 HttpClientHandler 初始化 HttpClient,該 HttpClientHandler 的 AutomaticDecompression 屬性針對所有壓縮方法進行了優化。
例子:
var _httpHandler = new HttpClientHandler() { CookieContainer = new System.Net.CookieContainer(), AutomaticDecompression = System.Net.DecompressionMethods.GZip | System.Net.DecompressionMethods.Deflate | System.Net.DecompressionMethods.None };
var _httpClient = new HttpClient(_httpHandler);
謝謝你們幫助我!
- 1 回答
- 0 關注
- 155 瀏覽
添加回答
舉報
0/150
提交
取消