fsockopenでプロキシー経由のhttpsアクセス - PHPプロ!Q&A掲示板
300
- 200P
- 200P
fsockopenでプロキシー経由のhttpsアクセス
質問日時 / 2006年12月27日 20:37 (最終編集:12月28日 10:12) 回答数 / 2件
Questioner: insystem2006
Tweet
fsockopenで、プロキシーサーバーに接続し、https://からはじまるサイトへ接続しようと思っていますが、
HTTPステータス400番が返ってきて接続できません。
なにか方法はありませんでしょうか?
尚、PHPインストール時にopenSSLを使えるようにはなっています。
.php → proxy:8080 → https://login.yahoo.co.jp:443/
(下記のコードのURIは、サンプルです)
- error_reporting(E_ALL);
- $TARGET_URI = 'https://user:pass@login.yahoo.co.jp:443/';
- $target_uri = parse_url($TARGET_URI);
- $proxy_host = 'proxy';
- $proxy_port = 8080;
- // リクエスト
- $req = 'GET '.$target_uri['path']." HTTP/1.1\x0d\x0a";
- $req .= 'Host: '.$target_uri['host'].':'.$target_uri['port']."\x0d\x0a";
- $req .= 'Authorization: Basic '.base64_encode($target_uri['user'].':'.$target_uri['pass'])."\x0d\x0a";
- $req .= "\x0d\x0a";
- $fp = fsockopen($proxy_host, $proxy_port, $errno, $errstr, $timeOut);
- if(!$fp){
- print 'ソケット初期化エラー';
- }else{
- // データ送信
- fwrite($fp, $req);
- // レスポンスデーター受信
- $res = '';
- while(!feof($fp)) $res .= fgets($fp);
- print '<pre>';
- print $res;
- print '</pre>';
- }





ページのトップへ


GETのままでは検索エンジンのロボットが拾ってくれなかったためにSEO対策として有効だと言われていますね。