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");
何が足りないの?!?