[PHP-users 16221]Re: PROXYサーバを経由してHTTP PUT,DELETE
Seiji Masugata
s.masugata @ digicom.dnp.co.jp
2003年 6月 25日 (水) 11:03:34 JST
桝形です。
> 実は今回はいつもよりも頑張ってマニュアルも英語から何からかたっぱしから読んでみました。
> proxyをキーワードにして検索もかけ色々と情報があることも分かりました。
お、すばらしいですね。
> で、実は下記のようなプログラムを質問する前に書いてみたのですが、
> 存在しないファイルにも関わらず、
> 削除しました、と言われてしまい上手くいかなかったのです。
こういうのは先に書いてくれるとありがたかったり。。。(^^;
> このプログラムは
> 存在しないファイルの場合には失敗するようにしてあって、
> プロキシ経由でない時は、実際にうまくいっていました。
>
> $url = "http://hogehoge.co.jp/test.txt";
> $user_agent = "Mozilla/4.0";
> $proxy = "http://192.168.0.1:8080";
>
> $ch = curl_init ($url);
>
> curl_setopt ($ch, CURLOPT_PROXY, $proxy);
> curl_setopt ($ch, CURLOPT_USERAGENT, $user_agent);
> curl_setopt ($ch, CURLOPT_HEADER, 1);
> curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
> curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1);
> curl_setopt ($ch, CURLOPT_TIMEOUT, 120);
> curl_setopt ($ch, CURLOPT_VERBOSE, 1 );
> curl_setopt ($ch, CURLOPT_NOPROGRESS, 1);
> curl_setopt ($ch, CURLOPT_FAILONERROR, 1 );
> curl_setopt ($ch, CURLOPT_CUSTOMREQUEST, "DELETE" );
>
> curl_exec ($ch);
>
> if (curl_error($ch) != "") {
> print("失敗");
> curl_close($ch);
> }
>
> 自分の中で疑わしいところは
> プロキシに接続できないと、そもそも$urlにはアクセスできないにも関わらず、
> 先に
> $ch = curl_init ($url);
> しているところです。
>
> そこで
> $ch = curl_init ($url);
> は2ついるんじゃないかと想像しています。
>
> //proxy接続時
> $ch = curl_init ();
> //HTTP PUT時
> $ch2 = curl_init ($url);
これで上手くいくかは不明ですが、
$url = "http://hogehoge.co.jp/test.txt";
$proxy = "http://192.168.0.1:8080";
$ch = curl_init( );
と、して、
curl_setopt($ch, CURLOPT_PROXY, $proxy );
curl_setopt( $ch, CURLOPT_URL, $url );
と、してみるとか。
--
Seiji Masugaat<s.masugata @ digicom.dnp.co.jp>
PHP-users メーリングリストの案内