2012-06-11 4 views
1

XML 적절한 인코딩하지 않습니다 - 어떤 도움HttpClient를 - UrlEncodedFormEntity의 XML 인코딩의 NameValuePair는

List<NameValuePair> formparams = new ArrayList<NameValuePair>(); 
      formparams.add(new BasicNameValuePair("VENDOR", "pradeep"));    
      formparams.add(new BasicNameValuePair("REQTYPE", "ExternalSystem")); 
      formparams.add(new BasicNameValuePair("DATA", "<?xml version=\"1.0\" encoding=\"UTF-8\"?>")); 
      UrlEncodedFormEntity entity = new UrlEncodedFormEntity(formparams, "UTF-8"); 

내 아웃 VENDOR=pradeep&REQTYPE=ExternalSystem&DATA=%3C%3Fxml+version%3D%221.0%22+encoding%3D%22UTF-8%22%3F%3E

입니다하지만 난

VENDOR=D-B165&REQTYPE=EXRCTRFREQ&DATA=<?xml version=\"1.0\" encoding=\"UTF-8\"?> 

을이을 예상 하나 이상을 수행하는 방법

감사합니다. Pradeep

답변

1

UrlEncodedFormEntity() 호출의 결과가 올바른 것 같습니다. formparms ala Percent-encoding에있는 NameValuePairs를 모두 URL로 인코딩했습니다.

당신은 당신의 예상 출력에 대한 사용 사례를 언급하지 않는, 그러나 이것은 단순히 NameValuePair의를 연결하여 당신이 원하는 것을 할 것 w/인코딩 O를 : 당신은 여전히 ​​HttpEntity 필요

StringBuilder sb = new StringBuilder(); 
Iterator<NameValuePair> i = formparams.iterator(); 
while(i.hasNext()) 
{ 
    sb.append(i.next().toString()); 
    if(i.hasNext()) 
     sb.append("&"); 
} 

을하고 있다면 그 StringEntity를 다음과 같이 사용하여 시도해 볼 수있는 결과물을 수여합니다.

HttpEntity entity = new StringEntity(sb.toString()); 
+0

이것은 내가 원하는 것입니다. 정말 고마워요. – pradeep

관련 문제