1

HttpPost を使用して XML をサーバーに送信しています。これは以前はうまく機能していましたが、プロジェクトの他の部分でうまくやっています。

StringBuilder を使用して xml リクエストを作成していますが、文字列をデータとしてノードに追加しているため、サーバーのパーサーからエラー応答が返されます。

Invalid byte 2 of 2-byte UTF-8 sequence.

リクエストをログに記録し、w3c xml バリデーターで確認すると、エラーはありません。
これは、私の Stringbuilder メソッドからの抜粋です (メソッド全体が大きくなり、機密データが含まれます)。

        StringBuilder baseDocument = new StringBuilder();
        baseDocument.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?><request><setDisposalRequest><customer><company><![CDATA[");
        baseDocument.append(company);
        baseDocument.append("]]></company>");
        baseDocument.append("<firstName><![CDATA[");
        baseDocument.append(name);
        baseDocument.append("]]></firstName>");
        ...

追加する文字列変数をハードコードされた文字列に置き換えるとすぐに、すべて正常に動作します

すなわち

baseDocument.append(name);

baseDocument.append("name");

すべての文字列には値があり、null や空ではありません。
リクエストの前に、StringEntity を xml に設定します

se.setContentType("application/xml");

何が足りないの?!?

4

1 に答える 1