2014-12-17 11 views
5

URL'im var. Parametreler içeren bir bedeni veri biçiminde göndermek istiyorum = "blahblahblah". Ancak, bu durumda benim "blahblahblah" aşağıda gibi bir şey için aşağı Basit, tam teşekküllü bir XML geçerli:StringContent Vs FormUrlEncodedContent

 <Parent id="1"> 
     <Child id="1"/> 
     </Parent> 

Bunu şu yaklaşımla bulmak HTTPClient FormUrlEncodedContent ile bulmak çalışmak alabilirsiniz.

 var values = new List<KeyValuePair<string, string>>(); 
     values.Add(new KeyValuePair<string, string>("data", XMLBody)); 
     var content = new FormUrlEncodedContent(values); 
     HttpResponseMessage sResponse = await sClient.PostAsync(action.URL, content).ConfigureAwait(false); 

Şimdi bunu StringContent ile çalışmak istiyorum. Temel olarak xml bir parametre değerinin parçası olarak göndermek için xml, "=" içerir. Aşağıdaki kod, yayınlayabildiğim gibi çalışmıyor, ancak sunucu xml verilerini tanımıyor. Burada yanlış bir şey mi yapıyorum?

StringContent content = new StringContent(HttpUtility.UrlEncode(action.Body), Encoding.UTF8, "application/x-www-form-urlencoded"); 
HttpResponseMessage sResponse = await sClient.PostAsync(action.URL, content).ConfigureAwait(false); 

cevap

7

Bunu buldum, el ile veri = parçası koymak zorundayım.

StringContent content = new StringContent("data="+ HttpUtility.UrlEncode(action.Body), Encoding.UTF8, "application/x-www-form-urlencoded"); 
HttpResponseMessage sResponse = await sClient.PostAsync(action.URL, content).ConfigureAwait(false); 
İlgili konular