1

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\"?>

上記の方法のいずれか

ありがとう、プラディープ

4

1 に答える 1

1

UrlEncodedFormEntity() 呼び出しからの出力は正しいようです - formparms ala Percent-encodingのすべての NameValuePairs を URL エンコードしています。

予想される出力のユースケースについては言及していませんが、これは、エンコーディングなしで 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() );
于 2012-06-11T21:19:23.713 に答える