11

フォーム データではなく、投稿データを受け入れるファイル アップロード サービスと通信しています。デフォルトでは、JavaHttpURLConnectionContent-Typeヘッダーを に設定しapplication/x-www-form-urlencodedます。純粋なデータを投稿している場合、これは明らかに間違っています。

私 (クライアント) はコンテンツ タイプを知りません。Content-Typeヘッダーをまったく設定したくありません。このサービスには、コンテンツ タイプを推測する機能があります (ファイル名に基づいて、ファイルからデータを読み取るなど)。

ヘッダーの設定を解除するにはどうすればよいですか? 削除ヘッダーはありnullません。設定しても値は変更されず、空の文字列に設定すると、ヘッダーに値が設定されません。

4

4 に答える 4

1

私はこのアプローチをテストしていませんが、これを試すことができます:

HttpURLConnection を拡張し、その getContentHandler() および setContentHandler(...) メソッドをオーバーライドして試してください。getContentHandler() のコードを見ると、おそらくこれでうまくいくはずです。

于 2013-01-17T05:05:25.797 に答える
0

ヘッダーをnullに設定することでこれを達成しました。

connection.setRequestProperty(MY_HEADER, null);
于 2016-12-14T16:40:37.520 に答える
0

URLConnection の代わりにApache HttpClientを使用する

流暢なRequestを使用してリクエストを生成する

removeHeader() を使用する

于 2013-01-17T05:04:12.973 に答える
0

「Content-Type ヘッダーをまったく設定したくない」とはどういう意味ですか?

ブラウザー (または他の http クライアント) は、投稿要求をサーバーに送信するため、パラメーターをエンコードした方法をサーバーに通知する必要があります。

Content-Type ヘッダーが設定されていない場合、サーバー側では、受信したデータを解析する方法を理解できません。

Content-Type を設定しなかった場合は、デフォルト値が使用されます。

ブラウザ (または他の http クライアント) は、次の 2 つのことを行う必要があります。

  1. キーと値のペアを送信します。
  2. キーと値のペアがどのようにエンコードされたかをサーバーに通知します。

したがって、このヘッダーを完全に取り除くことは不可能です。

于 2013-01-17T05:27:16.420 に答える