2013-06-06 6 views
15

Bu, beni deli ediyor, ben ContentType üstbilgisini her yere koyabiliyorum ve metin/düz göndermeyi durdurma gibi görünmüyor. Fiddler verileri izlemekİçerik Tipi kullanmak için HttpClient'i zorlama: text/xml

, istek her zaman istiyor:

POST http: /domain.com HTTP/1.1

Content-Type: text/plain; charset = utf-8

using (var httpClient = new HttpClient()) 
{ 
    var request = new HttpRequestMessage(HttpMethod.Post, "http://domain.com"); 
     request.Content = new StringContent(Serialize(obj), Encoding.UTF8, "text/xml"); 
     request.Content.Headers.Clear(); 
     request.Content.Headers.ContentType = new MediaTypeHeaderValue("text/xml"); 
     request.Headers.Clear(); 
     request.Headers.Add("Content-Type","text/xml"); 
     var response = await httpClient.SendAsync(request); 
     return await response.Content.ReadAsStringAsync(); 
} 

cevap

5

deneyin ayarları varsayılan istek başlıklarını:

client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("text/xml")); 
+3

arasında "uygulama/xml" hayır, o çalıştı. Ancak Kabul et başlığı yardımcı olmaz. Content-Type üstbilgisini –

+0

Benim için mükemmel şekilde ayarlamaya çalışıyorum. –

21

Size zor çalıştı gibi :) Bu sadece çalışmalıdır görünüyor.

using (var httpClient = new HttpClient()) 
{ 
    var request = new HttpRequestMessage(HttpMethod.Post, "http://domain.com"); 
    request.Content = new StringContent(Serialize(obj), Encoding.UTF8, "text/xml"); 
    var response = await httpClient.SendAsync(request); 
    return await response.Content.ReadAsStringAsync(); 
} 
+1

Olmalı ama değil. Böyle basit girişimlerle başladım. Çıkışı Fiddler'da kontrol ettin mi? –

+0

Evet, yaptım. Hangi platformu kullanıyorsunuz? .NET Framework (Masaüstü) ile ConsoleApplication denedim – outcoldman

+0

Bu benim için mükemmel çalıştı –