- PR -

標準のHTTPヘッダーの追加について

1
投稿者投稿内容
ゆいな
ベテラン
会議室デビュー日: 2006/01/19
投稿数: 89
投稿日時: 2007-12-19 15:29
お世話になります。

JavaのプログラムからYahoo!等のサイトに対して、POSTを実行して
戻りのコンテンツを表示させたいのですが、Yahoo!側の無効なアクセスです
のページが表示されてしまいます。
WebブラウザーからPOSTリクエストした場合はうまくいくので
推測ですが、標準のHTTPヘッダー(HOSTヘッダー等)が設定できていないので
エラーがでていると考えられます。

ただ、HTTPClientのaddRequestHeader()メソッドを使用しても、
標準のHTTPヘッダを追加または変更することはできないという事なので
他のやり方を探していますが、なかなかヒットしません。

お手数ですが、HostやAccept-Ranges等の標準のHTTPヘッダーを設定する方法を
ご教示いただければ幸いです。よろしくお願いします。
Ray
ベテラン
会議室デビュー日: 2007/09/13
投稿数: 88
投稿日時: 2007-12-19 23:37
>推測ですが、標準のHTTPヘッダー(HOSTヘッダー等)が設定できていないので
>エラーがでていると考えられます。

netcatやtelnetなどで確認したらいかがでしょう。

>お手数ですが、HostやAccept-Ranges等の標準のHTTPヘッダーを設定する方法を

どんなHTTPClientを使ってるか知りませんが、継承して上書きできませんでしょうか。
または、java.net.Socketに自分でHTTPを書き込めば思い通りになるでしょう。
Ray
ベテラン
会議室デビュー日: 2007/09/13
投稿数: 88
投稿日時: 2007-12-19 23:49
読み返してみて思ったのですが。

引用:

ゆいなさんの書き込み (2007-12-19 15:29) より:

WebブラウザーからPOSTリクエストした場合はうまくいくので
推測ですが、標準のHTTPヘッダー(HOSTヘッダー等)が設定できていないので
エラーがでていると考えられます。

ただ、HTTPClientのaddRequestHeader()メソッドを使用しても、
標準のHTTPヘッダを追加または変更することはできないという事なので



この2点は矛盾してません?
標準なのに設定されていない。
標準なので変更することはできない。

あと、Hostヘッダが必須なのはHTTP/1.1からだったかと。
GENZO
大ベテラン
会議室デビュー日: 2003/11/26
投稿数: 111
お住まい・勤務地: 名古屋
投稿日時: 2007-12-20 00:31
引用:

ゆいなさんの書き込み (2007-12-19 15:29) より:
WebブラウザーからPOSTリクエストした場合はうまくいくので


yahooのどのページにPOSTしているのでしょうか?

ブラウザでリクエストって単純に解釈すると、POSTでは無くGETのような気がします。
yahooのトップページではなくログインページなどに対してリクエストしているってことでしょうか?
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2007-12-20 01:45
WEBサーバはどのアプリからのリクエストであるかなんて関係ないので、
ブラウザからのリクエストと同じになるように送れば大丈夫です。

なので、ブラウザが送るリクエストヘッダをキャプチャして、
同じように後れるようにすればよいでしょう。

JakartaのHttpClientを使っているなら、
addではなくsetで始まるヘッダの設定メソッドがありますよ。
nagise
ぬし
会議室デビュー日: 2006/05/19
投稿数: 1141
投稿日時: 2007-12-20 11:05
この手のデバッグはパケットをキャプチャして生のHTTPを見比べるのが一番手っ取り早いですよ。
ゆいな
ベテラン
会議室デビュー日: 2006/01/19
投稿数: 89
投稿日時: 2007-12-20 18:29
皆様、
ご回答ありがとうございます。

ブラウザーから送られる情報は
IEにieHTTPHeadersをインストールして、確認しまして
それと同じ内容のヘッダーをaddRequestHeader()で設定しました。

JavaプログラムはLinuxサーバ上に置かれていて
接続するYahoo!はSSLですから、SSLで接続する事になります。

tcpdumpを使って、キャプチャしてみたいと思います。
SSLで暗号化されていたりしないかちょっと心配ですが
取り急ぎ試してみます。結果は別途ご報告します。
ありがとうございました。よろしくお願いします。
1

スキルアップ/キャリアアップ(JOB@IT)