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

Norio Suzuki suzuki @ tricorn.co.jp
2008年 6月 24日 (火) 11:58:38 JST


鈴木です。

At Tue, 24 Jun 2008 11:11:24 +0900,
<tanig108 @ edogawa.home.ne.jp> wrote:
> 
> そうですか。。。
> ただ、実行結果の$err_num,$err_msgは、0,nullなので接続できているのかと思って
> いました。

403 が返って来ているなら、Web サーバへの「接続」は成功していますので、
fsckopen() ではエラーにはなりません。

Web サーバが許可していないファイル(URL)へのアクセスだったので、
「要求されたコンテンツの表示」をする代わりに、「403 というエラーを表示」した
という動きになっています。



> > 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



> $PATHは、 https://www.aaaa.bbbbb.cccc.jp/zzzz.html に設定してあります。

もし $PATH が上記の状態だと、次のような形式になっているのでは?

    POST https://www.aaaa.bbbbb.cccc.jp/zzzz.html HTTP/1.1

これは結果として、次の URL を Web サーバへ要求していることになります。

    https://www.aaaa.bbbbb.cccc.jp/https://www.aaaa.bbbbb.cccc.jp/zzzz.html 


個人的には、cURL 系を使った方が楽なような気がしますが、この方法で行くなら
少し寄り道をして、HTTP プロトコルについて理解を深めた方が先に進み易いか
と思います。

ty さんに合うかどうかは分かりませんが、私はこの辺りでプロトコルの勉強を
進めました。

http://www.atmarkit.co.jp/fnetwork/rensai/netpro00/netpro01.html

# だいぶ古いですけどね :-)

;; ---------------------------------------------------------
;; 鈴木則夫 <suzuki @ tricorn.co.jp>
;; トライコーン株式会社 http://www.tricorn.co.jp/
;; 160-0015 東京都新宿区大京町24 住友外苑ビル5F
;; Tel 03-5919-0041 Fax 03-5919-0042


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