[PHP-users 33698] Re: httpsのページに対して、POST送信をし、結果ページをテキストで取得したい

tanig108 @ edogawa.home.ne.jp tanig108 @ edogawa.home.ne.jp
2008年 6月 24日 (火) 12:32:05 JST


tyです。

鈴木様回答ありがとうございます。

いろいろ試したところ、結論としては、取得したい結果が取得できました!

> > そうですか。。。
> > ただ、実行結果の$err_num,$err_msgは、0,nullなので接続できているのかと
思って
> > いました。
>
> 403 が返って来ているなら、Web サーバへの「接続」は成功していますので、
> fsckopen() ではエラーにはなりません。
>
> Web サーバが許可していないファイル(URL)へのアクセスだったので、
> 「要求されたコンテンツの表示」をする代わりに、「403 というエラーを表示」し
た
> という動きになっています。
説明が不足していたのですが、403は、IEからサーバーURL(ファイル名指定なし)を直
接たたいた
時の話でした。
ソース上、結果をa.outに出力させていなかったため、実際には、結果が分かってい
ませんでした。
その部分を削除して、a.outに出力させたところ、以下のようになっていました。
「
HTTP/1.1 200 OK
Date: Tue, 24 Jun 2008 02:52:04 GMT
Content-Length: 0
Content-Type: text/html; charset=Shift_JIS
」
なので、接続は成功しているが、取得したいページは、DLできていない状態でした。
また、試行錯誤の途中で、「User-Agent:」を削除していたため、再度送ってみたと
ころ、
取得したい内容がa.outに出力されました。

> > > 2. 取得したい URL は https://www.aaaa.bbbbb.cccc.jp/          ですか?
> > >    それとも          https://www.aaaa.bbbbb.cccc.jp/zzzz.html ですか?
> > >    上のソースでは、$PATH が定義されていないようなので、前者へのリクエ
ス
> > >    トとなっています。
> > 所得したいURLは、 https://www.aaaa.bbbbb.cccc.jp/zzzz.html になります。
> だとすると、POST の部分は次のような形式になると思います。
>
>     POST /zzzz.html HTTP/1.1
正確には、「/zzzz.html 」になるはずですが、元の「https://〜」ままでもいけて
しまいました(?)。
「/zzzz.html 」に修正しました。ありがとうございます。

> 個人的には、cURL 系を使った方が楽なような気がしますが、この方法で行くなら
> 少し寄り道をして、HTTP プロトコルについて理解を深めた方が先に進み易いか
> と思います。
>
> ty さんに合うかどうかは分かりませんが、私はこの辺りでプロトコルの勉強を
> 進めました。
>
> http://www.atmarkit.co.jp/fnetwork/rensai/netpro00/netpro01.html
>
> # だいぶ古いですけどね :-)
ありがとうございます。
少し読ませていただきました。


以上、クローズとさせていただきます。




PHP-users メーリングリストの案内