亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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é)議。所以我猜測,google baidu的服務(wù)器和curl的proxytunnel不和,所以返回403。

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

比較奇怪的是,幾種操作系統(tǒng)下還不一樣,一臺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

而另外一臺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è)原因也會導(dǎo)致curl返回403錯(cuò)誤,如果設(shè)置了:

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

 curl_setopt($ch, CURLOPT_NOBODY, true);

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

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

不然會因?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在各種web服務(wù)器的運(yùn)行模式詳解

    基于php在各種web服務(wù)器的運(yùn)行模式詳解

    本篇文章是對php在各種web服務(wù)器的運(yùn)行模式進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • Laravel框架自定義公共函數(shù)的引入操作示例

    Laravel框架自定義公共函數(shù)的引入操作示例

    這篇文章主要介紹了Laravel框架自定義公共函數(shù)的引入操作,結(jié)合實(shí)例形式分析了Laravel5.5框架自定義公共函數(shù)的創(chuàng)建、配置、使用等相關(guān)操作技巧,需要的朋友可以參考下
    2019-04-04
  • php獲取微信共享收貨地址的方法

    php獲取微信共享收貨地址的方法

    這篇文章主要為大家詳細(xì)介紹了php獲取微信共享收貨地址的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • php+ajax+h5實(shí)現(xiàn)圖片上傳功能

    php+ajax+h5實(shí)現(xiàn)圖片上傳功能

    這篇文章主要為大家詳細(xì)介紹了php+ajax+h5實(shí)現(xiàn)ajax圖片上傳功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • win7系統(tǒng)配置php+Apache+mysql環(huán)境的方法

    win7系統(tǒng)配置php+Apache+mysql環(huán)境的方法

    如何在win7系統(tǒng)下配置php環(huán)境呢,php+Apache+mysql都是在配置過程中必不可少的元素,下面通過本篇文章給大家介紹win7系統(tǒng)配置php+Apache+mysql環(huán)境的方法,感興趣的朋友一起來學(xué)習(xí)
    2015-08-08
  • thinkphp整合系列之極驗(yàn)滑動驗(yàn)證碼geetest功能

    thinkphp整合系列之極驗(yàn)滑動驗(yàn)證碼geetest功能

    這篇文章主要介紹了thinkphp整合系列之極驗(yàn)滑動驗(yàn)證碼geetest ,功能的實(shí)例代碼,本文圖文并茂給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-06-06
  • thinkphp ajaxfileupload實(shí)現(xiàn)異步上傳圖片的示例

    thinkphp ajaxfileupload實(shí)現(xiàn)異步上傳圖片的示例

    本篇文章主要介紹了thinkphp ajaxfileupload實(shí)現(xiàn)異步上傳圖片的示例,具有一定的參考價(jià)值,有興趣的可以了解一下
    2017-08-08
  • PHP獲取真實(shí)IP及IP模擬方法解析

    PHP獲取真實(shí)IP及IP模擬方法解析

    這篇文章主要介紹了PHP獲取真實(shí)IP及IP模擬方法解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-11-11
  • 詳解php日期查詢和fastadmin的日期查詢

    詳解php日期查詢和fastadmin的日期查詢

    要在PHP中查詢數(shù)據(jù)庫中當(dāng)前月份的數(shù)據(jù),需要使用SQL查詢語句來篩選出符合條件的數(shù)據(jù),這篇文章主要介紹了php查詢數(shù)據(jù)(日期查詢)和fastadmin的日期查詢,需要的朋友可以參考下
    2023-08-08
  • PHP基于GD庫的縮略圖生成代碼(支持jpg,gif,png格式)

    PHP基于GD庫的縮略圖生成代碼(支持jpg,gif,png格式)

    你可能會遇到這樣的問題,在用戶上傳了一張圖片后,得到這張圖片的縮略圖,PHP可以使用GD庫生成縮略圖,那么我們來探討下,如何才能生成高質(zhì)量的縮略圖呢?
    2014-06-06

最新評論