2017-06-06 25 views
1

我試圖從C#代碼中選擇API。我無法獲得響應並收到狀態碼「500 - 內部服務器錯誤」。如何刪除HttpClient請求標頭中的默認字符集C#

發現「Charset-UTF8」在請求頭

得到附加當我試圖打在提琴手的API沒有「Charset-UTF8」的原因,我能得到提琴手和郵遞員的響應。與「Charset-UTF8」我得到相同的500內部服務器錯誤。內容類型是application/json

我甚至試過每個charaset編碼方法UTF-8,16,32,unicode和C#代碼的默認格式,都給出了同樣的錯誤。

請讓我知道如何從API請求頭中刪除CharSet(附加)。

請到通過代碼。我已

HttpClient client1 = new HttpClient(); 
client1.BaseAddress = new Uri("i have third party url"); 
client1.DefaultRequestHeaders 
    .Accept 
    .Add(new MediaTypeWithQualityHeaderValue("application/json"));//ACCEPT header 
     client1.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(
      "Basic", 
      Convert.ToBase64String(
       System.Text.ASCIIEncoding.ASCII.GetBytes(
        string.Format("{0}:{1}", userName, password)))); 

HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Put, client1.BaseAddress); 


StringContent content = new StringContent(JsonConvert.SerializeObject("working request")); 


request.Content = content; 

client1.SendAsync(request) 
    .ContinueWith(responseTask => 
    { 
     Console.WriteLine("Response: {0}", responseTask.Result); 
    }); 
+1

你從https://stackoverflow.com/questions/23161088/how-to-嘗試的想法remove-charset-utf8-from-content-type-header-generated-by-httpclient-post? – mjwills

+0

從您的IE瀏覽器中刪除cookies並重試。服務器可能仍在使用UTF8設置的舊cookie。 – jdweng

+0

@mjwills謝謝你!我從你的鏈接中獲得瞭解決方案。我修改了幾行來獲得httpclient響應。 – CMNagaraj

回答

0

嘗試以下

content.Headers.Remove("Content-Type"); // "{application/json; charset=utf-8}" 
content.Headers.Add("Content-Type", "application/json"); 

content.Headers.ContentType.CharSet = string.Empty; 

的解決方案,我已經在dotnet/corefx回購提交的問題。

檢查出來https://github.com/dotnet/corefx/issues/25290

測試在 .NET核2.0,.NET 2.0標準

相關問題