2011-10-30 7 views
2

Content-Typeを変更したいのですが、うまくいきません...そうですか? コード:Content-Typeを正しく設定するにはどうすればよいですか?

HttpURLConnection conn=(HttpURLConnection)url.openConnection(); 
    conn.setRequestProperty("Content-Type", "text/plain; charset=utf-8"); 

    System.out.println(conn.getContentType()); 

出力されていないと "text/plain; charset = UTF-8" ...何か? ありがとう

+0

「conn」はどのような種類のオブジェクトですか?あなたは 'Content-Type'出力をJSP内からブラウザに変更しようとしていますか? – laz

+0

ああ...申し訳ありませんが、私は編集します...待ちます – user996505

答えて

3

getContentType()の値は、要求に設定された値ではなく、応答からContent-Typeヘッダーの値を返します。私がリンクしているJavadocを参照してください。あなたは正確に何をしようとしていますか?

+0

私はurl..iを使用して "conn.setRequestProperty(" Content-Type "、" text/plain; charset = utf-8 ");サーバーからhtmlコンテンツタイプを設定する...私は間違いを犯しましたか? – user996505

+2

あなたが送信しているリクエストの 'Content-Type'を設定します。そのURLのリソースがあなたにできるメカニズムを提供していない限り、サーバー応答の 'Content-Type'を直接制御することはできません。 – laz

3

lazが正しく指摘しているので、発信要求のContent-Typeを設定すると、応答に戻ることになるContent-Typeを制御できません。 Content-Typeを動的に制御できるほどスマートなサーバーをお持ちの場合は、特定のサーバーを要求する正しい方法はAccept headerです。

Accept request-headerフィールドを使用して、応答に適した特定のメディアタイプを指定できます。 例

Accept: audio/*; q=0.2, audio/basic 

は、「私は基本/オーディオ好むが、それは品質に80%のマークダウン後に利用可能な最善のであれば私に任意のオーディオタイプを送信してください。」と解釈されるべきです

+0

HTTPを介して話す可能性のあるほとんどのサービスは、明示的に要求しない限り、おそらくこれをサポートしないことに注意してください。あなたはそれをサポートするためにあなたのサービスを設計しなければなりません。 –

関連する問題