cURLでプロキシを通そうとするとハマった…

ここを参考にcURLでプロキシを通そうとするとハマりにハマりました.

問題のコードの一部抜粋↓
PukiWiki数式表示プラグインの一部です

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
if ($use_proxy && ! in_the_net($no_proxy, API_HOST)) {
	curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, true);
	curl_setopt($ch, CURLOPT_PROXY, $proxy_host . ':' . $proxy_port);

	// Basic-auth for HTTP proxy server
	if ($need_proxy_auth && isset($proxy_auth_user) && isset($proxy_auth_pass))
		curl_setopt($ch, CURLOPT_PROXYUSERPWD, $proxy_auth_user . ':' . $proxy_auth_pass);
	}
	$teximg = curl_exec($ch);
}
if (curl_error($ch))
	return 'Error! cURL: ' . curl_error($ch);
curl_close($ch);

これを実行するとこんなエラーが.

Received HTTP code 502 from proxy after CONNECT;

なんじゃこりゃ!

URLを変えてみたりプロキシを変えてみたりオプションをいろいろいじったりしても解決できず.
途方に暮れていたところ,こんな内容を発見.

CURLOPT_HTTPPROXYTUNNEL doesn’t do what you think it does. If you don’t set it, and just set CURLOPT_PROXY, it should work fine.

引用:Using PHP cURL with an HTTP Debugging Proxy

えっ?だって CURLOPT_HTTPPROXYTUNNEL って,プロキシ使いますよ~って意味なんじゃ?
だってほら.

CURLOPT_HTTPPROXYTUNNEL: TRUE を設定すると、指定された HTTP プロキシを利用します。

引用: PHP: curl_setopt - Manual

ダメもとで curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, true); の行をコメントアウトしてみると…

で,できた…

なんだよもう…

広告
UTF-8のtexファイルをコンパイルするためのシェルスクリプト 多変量正規分布とガンマ分布の意外な関係
※このエントリーははてなダイアリーから移行したものです。過去のコメントなどはそちらを参照してください