私はいくつかの XML をサーバーに PUT しようとしていますが、その要点は、私が何をしても、HttpPut は Http 本体に何も入れないということです。サーバーは常に本体が見つからないと言って戻ってきますが、Wireshark で見ると何もありません! リクエストを設定して実行するために使用しているコードは次のとおりです。
HttpPut putRequest = new HttpPut(urlString]);
StringEntity stringEntity = new StringEntity(xmlString, HTTP.ISO_8859_1);
stringEntity.setContentType("text/xml");
putRequest.setEntity(stringEntity);
putRequest.addHeader("Host", formatUrlForHostHeader(broadsoftUrl));
putRequest.addHeader("Authorization", authorizationString);
putRequest.addHeader("Content-Type", "text/xml");
putRequest.addHeader("Accept", "text/xml");
response = httpClient.execute(putRequest);
ここに他に何を含めるべきかわかりません。4.2 と 4.0.3 で試してみました。このコードは、AsyncTask の doInBackground で実行されています。取得した応答コードは 409 Conflict で、本文はサーバーのアプリケーション固有のメッセージで、本文が欠落していることを示しています。Wiresharkで欠落していることを確認しました。
編集:
興味深いことに、デスクトップで同じコードをスタンドアロンで実行したところ、うまくいきました。では、Android 版の HttpClient やシステムに問題はありますか? 確認のため、いくつかの異なる API レベルも試しました。
何かご意見は?
ありがとう!