【Javaプログラミングに関する質問】プログラム上から『Yahoo!ファイナンス ログイン後ページ(※)』にアクセスするプログラムを作成しています。現在『ログイン後ページ』に直に飛ぶアドレスが判明しているのですが、プログラム上からであると以下のメッセージが表示されてしまいます。


「クッキーを無効にする設定になっています。ログインするにはクッキーが必要です。」

これは恐らくHTMLソース上のスクリプトを実行せずにそのページにアクセスしているためだと思われます。ここで質問です。

「プログラム上からのアクセスからでも、クッキーを有効するプログラム・方法はありますでしょうか?」

ご存知の方はご教授下さい。ちなみにご回答なさる際、できるならば具体的に記述するようお願いします。


『Yahoo!ファイナンス ログイン後ページ』
http://charge.quote.yahoo.co.jp/?u
(Yahoo!にログインしていなければ自動的に『ログイン前ページ』に移動します。)

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:--
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答2件)

id:kuromaku0103 No.1

回答回数28ベストアンサー獲得回数0

ポイント100pt

プログラムはどのように組まれていますか?


Commons-HttpClientを利用するのが一番てっとりばやいと思います。これを使ってなら、http だけでなく、https環境下でも自動的にWebシステムにログインして操作を行なうプログラムを簡単に作成できます。


「クッキーを無効にする設定になっています。ログインするにはクッキーが必要です。」


は、プログラム内でクッキーを使えないためにおこっている現象だと思います。httpClientを使うとこの問題は回避できます。


サンプルコードです。

このコードあれば、クッキーは意識しなくても使用可能です。

id:aki73ix No.2

回答回数5224ベストアンサー獲得回数27

ポイント40pt

Webページへのアクセスのさせ方も色々あるので一意にはいえませんが、クッキーの情報はリクエストヘッダ内にて一緒に送信されます


ですからクエリ送信の際に取得したCookieをHeaderで送信すればよいわけです

プログラム内で全Header送信も行っているのであれば、これが欠落しているのだと思います


WebBrowoserを使いながらパケットを監視してみれば、Cookie: ごにょごにょというヘッダを送信しているのが分かると思います


具体的には、最初の認証で Set-Cookie:というヘッダが来るはずなので、Cookieを要求するサイトにはセッションIDがわりにヘッダとして送信しなくてはいけません


たまに、サイト外からのアクセスを区別するために、Referer: ヘッダを見ていることもあるので、プログラミングの際には注意が必要です

コメントはまだありません

この質問への反応(ブックマークコメント)

トラックバック

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません