0

HTTP Put のコンテンツ タイプを xxxx+xml に設定するにはどうすればよいですか?

このリンクAndroid のソリューションを参照し、HTTP POST (SOAP) 経由で XML を送信しました。このようにコンテンツ タイプを設定すると問題ありません。つまり、xml がリクエストと共に送信されるということです。

httppost.setHeader("Content-Type","application/soap+xml;charset=UTF-8");

しかし、石鹸のタイプをカスタムのものに変更すると、次のように、リクエストでxmlが消えます(wiresharkで見ました):

httppost.setHeader("Content-Type","application/vnd.oma-pcc+xml;charset=UTF-8");

次に、xmlのみを入れてみたので、リクエストは再びOKです:

httppost.setHeader("Content-Type","application/xml;charset=UTF-8");

xml がまだそこにあるように、xml 型と一緒になるよりも content-type の正確なルールを知りたいです。

ありがとう。

4

1 に答える 1

1

4.1.3 以降の HTTPClient を使用していると仮定すると、

エンティティを構築するとき、特定のエンティティの POST または PUT 操作に使用されるコンテンツを指定するオプションがあります。

これを指定するために使用するContentTypeオブジェクトがあります。

ファクトリ メソッド .create() を使用すると、charset で MIME タイプを指定できます。フレームワークは ContentType を使用して、問題のヘッダーを適切に発行します。

API 呼び出しの例:

ContentType.create("application/vnd.oma-pcc+xml", CharSet.forName("UTF-8"));

NOTE HttpClient 4.1.2 の編集

4.1.2 の場合、post または put 操作用のエンティティを作成するときに、 setContentType(String) を使用して実行(HttpPost または HttpPut) ではなく、エンティティにコンテンツ タイプを設定します。これは 4.1.3 以降では非推奨です。

于 2013-01-15T15:00:30.097 に答える