最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

PHP Curl出現(xiàn)403錯(cuò)誤的解決辦法

 更新時(shí)間:2014年05月29日 10:15:29   作者:  
這篇文章主要介紹了PHP Curl出現(xiàn)403錯(cuò)誤的解決辦法,是一個(gè)比較奇葩的錯(cuò)誤,刪除一些CURL的參數(shù)即可解決這個(gè)問題,需要的朋友可以參考下

自己用的小PHP應(yīng)用,使用curl抓網(wǎng)頁下來處理,為了穿墻方便,使用Privoxy作為代理,便于選擇哪些網(wǎng)站使用proxy、哪些不用。但今天卻遇到了奇怪的問題,訪問google baidu這些網(wǎng)站居然都返回403錯(cuò)誤,而訪問其他的一些網(wǎng)站沒事,如果設(shè)置為不使用proxy則都能正常訪問。

難道google baidu就不讓用proxy連接么?顯然不可能,所以打開curl的信息輸出(curl_setopt($this->mSh, CURLOPT_VERBOSE, 1);)看看,得到以下結(jié)果:

復(fù)制代碼 代碼如下:

*   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
> CONNECT www.baidu.com:80 HTTP/1.0
Host: www.baidu.com:80
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)
Proxy-Connection: Keep-Alive

< HTTP/1.0 403 Connection not allowable
< X-Hint: If you read this message interactively, then you know why this happens ,-)
<
* The requested URL returned error: 403
* Received HTTP code 403 from proxy after CONNECT
* Closing connection #0
... Failed.


可以看到proxy服務(wù)器工作正常,的確是baidu返回了403錯(cuò)誤,但原因肯定還在我這邊。終于,從網(wǎng)上(1of2, 2of2)得到了點(diǎn)啟發(fā)──我使用的是proxytunnel而非proxy。

在代碼中,有這么一句:

復(fù)制代碼 代碼如下:

 curl_setopt($this->mSh, CURLOPT_HTTPPROXYTUNNEL, true);
 curl_setopt($this->mSh, CURLOPT_PROXY, $phost);

php文檔中沒有詳細(xì)說明,不過man curl中有詳細(xì)解釋,兩者都是代理,proxytunnel(-p參數(shù))允許其他協(xié)議通過http代理傳輸,而proxy(-x參數(shù))則只能走h(yuǎn)ttp協(xié)議。所以我猜測(cè),google baidu的服務(wù)器和curl的proxytunnel不和,所以返回403。

禁用掉上面2行代碼的第一句后,curl訪問恢復(fù)正常。

比較奇怪的是,幾種操作系統(tǒng)下還不一樣,一臺(tái)MAC OSX就要顯式的禁用proxytunnel才可以,curl版本:

復(fù)制代碼 代碼如下:

$ curl --version
curl 7.16.3 (powerpc-apple-darwin9.0) libcurl/7.16.3 OpenSSL/0.9.7l zlib/1.2.3
Protocols: tftp ftp telnet dict ldap http file https ftps
Features: GSS-Negotiate IPv6 Largefile NTLM SSL libz

而另外一臺(tái)ubuntu則完全不受影響,怎么都能用,curl版本:
復(fù)制代碼 代碼如下:

$ curl --version
curl 7.18.2 (i486-pc-linux-gnu) libcurl/7.18.2 OpenSSL/0.9.8g zlib/1.2.3.3 libidn/1.10
Protocols: tftp ftp telnet dict ldap ldaps http file https ftps
Features: GSS-Negotiate IDN IPv6 Largefile NTLM SSL libz

MT主機(jī)上的centos也沒事,curl版本:
復(fù)制代碼 代碼如下:

$ curl --version
curl 7.15.5 (i686-redhat-linux-gnu) libcurl/7.15.5 OpenSSL/0.9.8b zlib/1.2.3 libidn/0.6.5
Protocols: tftp ftp telnet dict ldap http file https ftps
Features: GSS-Negotiate IDN IPv6 Largefile NTLM SSL libz

看來不完全是curl版本問題,MAC OSX的確與眾不同啊。

還有一個(gè)原因也會(huì)導(dǎo)致curl返回403錯(cuò)誤,如果設(shè)置了:

復(fù)制代碼 代碼如下:

 curl_setopt($ch, CURLOPT_NOBODY, true);

則需要緊跟著設(shè)置:
復(fù)制代碼 代碼如下:

 curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');

不然會(huì)因?yàn)閔ttp服務(wù)器不允許 HEAD 命令而返回403錯(cuò)誤。參考:Trouble with a cURL request in PHP(http://forums.devshed.com/php-development-5/trouble-with-a-curl-request-in-php-445222.html)。MAC OSX上curl之所以特殊,也不排除是這種原因吧。

您可能感興趣的文章:

相關(guān)文章

  • php微信公眾號(hào)開發(fā)之秒殺

    php微信公眾號(hào)開發(fā)之秒殺

    這篇文章主要為大家詳細(xì)介紹了php微信公眾號(hào)開發(fā)之秒殺功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-10-10
  • Laravel 4.2 中隊(duì)列服務(wù)(queue)使用感受

    Laravel 4.2 中隊(duì)列服務(wù)(queue)使用感受

    Laravel的隊(duì)列組件為許多隊(duì)列服務(wù)提供了統(tǒng)一的API接口。隊(duì)列服務(wù)讓你可以異步處理一個(gè)耗時(shí)任務(wù),比如延遲發(fā)送一封郵件,從而大大加快了應(yīng)用的Web請(qǐng)求處理速度。
    2014-10-10
  • PHP會(huì)員找回密碼功能的簡單實(shí)現(xiàn)

    PHP會(huì)員找回密碼功能的簡單實(shí)現(xiàn)

    下面小編就為大家?guī)硪黄狿HP會(huì)員找回密碼功能的簡單實(shí)現(xiàn)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-09-09
  • CodeIgniter框架提示Disallowed Key Characters的解決辦法

    CodeIgniter框架提示Disallowed Key Characters的解決辦法

    在做項(xiàng)目過程中,出現(xiàn)提交form表單的時(shí)候,出現(xiàn)了Disallowed Key Characters 的提示
    2014-04-04
  • php讀取純真ip數(shù)據(jù)庫使用示例

    php讀取純真ip數(shù)據(jù)庫使用示例

    這篇文章主要介紹了php讀取純真ip數(shù)據(jù)庫顯示詳細(xì)信息的使用示例,大家參考使用吧
    2014-01-01
  • PHP調(diào)用OpenOffice實(shí)現(xiàn)word轉(zhuǎn)PDF的方法

    PHP調(diào)用OpenOffice實(shí)現(xiàn)word轉(zhuǎn)PDF的方法

    下面小編就為大家?guī)硪黄狿HP調(diào)用OpenOffice實(shí)現(xiàn)word轉(zhuǎn)PDF的方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-11-11
  • php 廣告點(diǎn)擊統(tǒng)計(jì)代碼(php+mysql)

    php 廣告點(diǎn)擊統(tǒng)計(jì)代碼(php+mysql)

    本文講的是php 廣告點(diǎn)擊統(tǒng)計(jì)代碼, php 廣告點(diǎn)擊統(tǒng)計(jì)代碼,昨天晚上有幾個(gè)IDC網(wǎng)想與本站合作放些廣告,但是我想看看廣告效果后想了就寫了一個(gè)簡單的廣告統(tǒng)計(jì)代碼了,這里只是等的統(tǒng)計(jì)不能IP限制或是惡心點(diǎn)擊等等了
    2018-02-02
  • php用header函數(shù)實(shí)現(xiàn)301跳轉(zhuǎn)代碼實(shí)例

    php用header函數(shù)實(shí)現(xiàn)301跳轉(zhuǎn)代碼實(shí)例

    分享一個(gè)php 301跳轉(zhuǎn)的代碼,很簡單,主要是用header函數(shù)實(shí)現(xiàn)轉(zhuǎn),大家可以參考使用
    2013-11-11
  • 詳解Yii2.0使用AR聯(lián)表查詢實(shí)例

    詳解Yii2.0使用AR聯(lián)表查詢實(shí)例

    這篇文章主要介紹了詳解Yii2.0使用AR聯(lián)表查詢實(shí)例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-06-06
  • ThinkPHP分頁實(shí)例

    ThinkPHP分頁實(shí)例

    這篇文章主要介紹了ThinkPHP分頁實(shí)例,詳細(xì)講述了ThinkPHP分頁的完整實(shí)現(xiàn)步驟,包括模型層、視圖層以及樣式的代碼,需要的朋友可以參考下
    2014-10-10

最新評(píng)論

北流市| 利川市| 蓝田县| 讷河市| 苍南县| 惠安县| 方正县| 原平市| 买车| 襄汾县| 北海市| 新丰县| 瓦房店市| 罗甸县| 衡东县| 方山县| 天全县| 进贤县| 于田县| 九江市| 洛扎县| 鄂伦春自治旗| 衡阳市| 北安市| 石门县| 高雄市| 台江县| 萝北县| 江油市| 扎鲁特旗| 甘洛县| 琼中| 曲周县| 武陟县| 长沙县| 华池县| 四子王旗| 绥中县| 资兴市| 当雄县| 大荔县|