1

HttpPut を使用して xml を送信しようとすると、常にエラー 400 が発生します。firefox 用のいくつかの REST クライアントで試してみましたが、URI と XML の両方に問題はありません。

それで、Wireshark でパケットをチェックすると、何か変なことが起こりました。文字「?」があるようです。xml の先頭にあります。もちろんこの「?」私のxmlファイルになく、どこから来たのかわかりません。xml をコードの変数に入れると、すべて正常に動作しますが、Eclipse のアセット ディレクトリにあるファイルから xml を読み取ると、「?」現れる...

これが私のコードのサンプルです。私はすべてを試しました.addHeadersを使用して、ヘッダーを追加せずに、行の代わりにバイトを読み取ります....そして毎回エラー400が発生しました。問題は、xml ファイルの最初の行を「手動で」(ここに置いたコードで行ったように)「?」先頭ではなく最初の行の後に来る (ファイルからすべての xml を読み取った場合)

BufferedReader reader = new BufferedReader(new InputStreamReader(c.getAssets().open("data.xml")));   
String line;
String f="<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>";
while((line=reader.readLine()) != null){
    f+=line;    
}
reader.close();
StringEntity se = new StringEntity(new String(f));
se.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE,"text/xml;charset=UTF-8"));
            reqPut.setEntity(se);
httpResp =  (BasicHttpResponse) httpCli.execute(reqPut);

誰かがこれについての手がかりを持っているなら....

4

0 に答える 0