xml编码不正确 - 任何帮助
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
答案 0 :(得分:1)
看起来你的UrlEncodedFormEntity()调用的输出是正确的 - 它的URL编码了formparms ala Percent-encoding中的所有NameValuePairs。
你没有提到你的预期输出的用例,但这可以通过简单地连接没有编码的NameValuePairs来做你想要的:
StringBuilder sb = new StringBuilder();
Iterator<NameValuePair> i = formparams.iterator();
while( i.hasNext() )
{
sb.append( i.next().toString() );
if( i.hasNext() )
sb.append( "&" );
}
如果您仍然需要一个尊重该输出的HttpEntity,您可以尝试使用StringEntity,例如:
HttpEntity entity = new StringEntity( sb.toString() );