<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<head><meta forua="true" http-equiv="Cache-Control" content="max-age=0" /></head>
<card title="解决PHP Curl出现403错误的办法 curl_setopt" id="card1">
<p> 游客</p><p>
标题:解决PHP Curl出现403错误的办法 curl_setopt<br/>
正文:<br/>
自己用的小PHP应用，使用curl抓网页下来处理，为了穿墙方便，使用Privoxy作为代理，便于选择哪些网站使用proxy、哪些不用。但今天却遇到了奇怪的问题，访问google baidu这些网站居然都返回403错误，而访问其他的一些网站没事，如果设置为不使用proxy则都能正常访问。难道google baidu就不让用proxy连接么？显然不可能，所以打开curl的信息输出（curl_setopt($this-&amp;gt;mSh, CURLOPT_VERBOSE, 1);）看看，得到以下结果：代码如下:*   Trying 127.0.0.1... * connected* Connected to 127.0.0.1 (127.0.0.1) port 8118 (#0)* Establish HTTP proxy tunnel to www.baidu.com:80&amp;gt; CONNECT www.baidu.com:80 HTTP/1.0Host: www.baidu.com:80User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)Proxy-Connection: Keep-Alive&amp;lt; HTTP/1.0 403 Connection not allowable&amp;lt; X-Hint: If you read this message interactively, then you know why this happens ,-)&amp;lt; * The requested URL returned error: 403* Received HTTP code 403 from proxy after CONNECT* Closing connection #0... Failed.可以看到proxy服务器工作正常，的确是baidu返回了403错误，但原因肯定还在我这边。终于，从网上（1of2, 2of2）得到了点启发──我使用的是proxytunnel而非proxy。在代码中，有这么一句：代码如下: curl_setopt($this-&amp;gt;mSh, CURLOPT_HTTPPROXYTUNNEL, true); curl_setop<br/><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=1769&amp;Page=1">[&lt;&lt;]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=1769&amp;Page=1">[[1]]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=1769&amp;Page=2">[2]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=1769&amp;Page=3">[3]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=1769&amp;Page=3">[&gt;&gt;]</a><br/>
<br/>
<a href="wap.asp?act=Com&amp;id=1769">查看评论(0)</a><br/>
<a href="wap.asp?act=AddCom&amp;inpId=1769">发表评论</a><br/><br/>

<br/>

<br/>
<a href="http://camnpr.com/wap.asp">首页</a>
</p>
</card>
</wml>