簡體   English   中英

HttpRequestMessage.Content 帶有無效和不可讀的字符

[英]HttpRequestMessage.Content comes with invalid and unreadable characters

當我從 HttpRequestMessage.Contenc 得到返回時,它就好像被加密了一樣。 有人已經經歷過類似的事情

        var client2 = new HttpClient();

        client2.DefaultRequestHeaders.Accept.Clear();
        client2.DefaultRequestHeaders.TryAddWithoutValidation("Content-Type", "application/json");

        var httpRequestMessage = new HttpRequestMessage
        {
            Method = HttpMethod.Post,
            RequestUri = uri,
            Headers = {
            { HttpRequestHeader.Authorization.ToString(), $"Bearer {resulttoken.access_token}" },
            },
            Content = new StringContent(dic.ToString())
        };

        //posting the data here to the endpoint and capturing the request.
        var response_teste = client2.SendAsync(httpRequestMessage).Result;
        var Result_final = await response_teste.Content.ReadAsStringAsync();

結果 /

" \\b\\0\\0\\0\\0\\0\\0\\0 M? 0?@\᫐ c p \\a( 6A aa w {_F ld/ RG!( y^ E Y 18m b { \\fk% BsCH זU U6Z z {) ; ]4 a\\n + ~ 4* ` 0 1N?-tR / \\0\\0\\0"

而不是使用的response.Content.ReadAsStringAsync()直接,你可以使用response.Content.ReadAsBufferAsync()如下,以檢查它是否工作:

var buffer = await response.Content.ReadAsBufferAsync();
var byteArray = buffer.ToArray();
var responseString = Encoding.UTF8.GetString(byteArray, 0, byteArray.Length);

這在我的情況下有效,我想使用 UTF8 應該可以解決大部分問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM