當前位置:首頁 » 編程語言 » phpcurl訪問

phpcurl訪問

發布時間: 2022-09-24 01:11:43

php 用CURL 抓取錯誤提示:Recv failure: Connection was aborted 怎麼解決 求助各位大神

一、原因分析

web站點目前主要分為http和https兩種協議,其中https類型的網站都是通過ssl協議+http協議的,是目前最安全的網站協議,訪問此類網站的時候,會走ssl協議,驗證訪問者的證書,檢測是否安全。

通過curl訪問此類網站也是如此流程,但是curl中需要添加相應的參數,繞過ssl證書的驗證,才可以正常訪問,如出現此錯誤的一般原因是沒有加此參數。

CURLOPT_SSL_VERIFYHOST的值

設為0表示不檢查證書

設為1表示檢查證書中是否有CN(common name)欄位

設為2表示在1的基礎上校驗當前的域名是否與CN匹配。

二、解決方案

如果出現:

PHP Notice: curl_setopt():

CURLOPT_SSL_VERIFYHOST with value 1 is deprecated and will be removed as of libcurl 7.28.1. It is recommended to use value 2 instead in

一般原因是你設置了 curl_setopt ( $curl_handle, CURLOPT_SSL_VERIFYHOST, true );

改成curl_setopt ( $curl_handle, CURLOPT_SSL_VERIFYHOST, 2 );就行了。

(1)phpcurl訪問擴展閱讀

PHP其他原因錯誤:

1、錯誤現象

在用curl進行模擬調用時,curl接收內容會出現"Empty reply from server" 和 "Recv failure: Connection was reset"的錯誤。

2、解決方案

經過對apache的error_log進行跟蹤,出現錯誤"Connection reset by peer: core_output_filter: writing data to the network"

修改httpd.conf,在虛擬主機上添加如下內容:

EnableSendfile off

EnableMMAP off

修改後"Empty reply from server"錯誤消失。

❷ php curl的幾種用法

總結一下項目中用到curl的幾種方式 1. php curl的默認調用方法,get方式訪問url $ch = curl_init(); curl_setopt($ch, CURLOPT_HTTPHEADER, $header); //設置http頭 curl_setopt($ch, CURLOPT_ENCODING, "gzip" ); //設置為客戶端支持gzip壓縮 curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30 ); //設置連接等待時間 curl_setopt($ch, CURLOPT_URL, $url ); curl_exec( $ch ); if ($error = curl_error($ch) ) {//出錯處理return -1;}fclose($fp); $curl_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); //獲取http返回值 if( $curl_code == 200 ) { //正常訪問url}//異常 2. 設置http header支持curl訪問lighttpd伺服器Java代碼$header[]= 'Expect:'; $header[]= 'Expect:'; 3. 設置curl,只獲取http header,不獲取body:Java代碼curl_setopt($ch, CURLOPT_HEADER, 1); curl_setopt($ch, CURLOPT_NOBODY, 1); curl_setopt($ch, CURLOPT_HEADER, 1); curl_setopt($ch, CURLOPT_NOBODY, 1); 或者只獲取body:Java代碼curl_setopt($ch, CURLOPT_HEADER, 0); // make sure we get the body curl_setopt($ch, CURLOPT_NOBODY, 0); curl_setopt($ch, CURLOPT_HEADER, 0); // make sure we get the body curl_setopt($ch, CURLOPT_NOBODY, 0); 4. 訪問虛擬主機,需設置Host $header[]= 'Host: '.$host; 5. 使用post, put, delete等REStful方式訪問urlpost:curl_setopt($ch, CURLOPT_POST, 1 ); put, delete: curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "DELETE"); //或者PUT,需要伺服器支持這些方法。6. 保存下載內容為文件

❸ PHP語言中php curl的幾種應用方式

今天我們向大家介紹的是在PHP中的php curl的幾種使用方式,希望對有需要的朋友有所幫助。

2. 設置http header支持php curl訪問lighttpd伺服器

3. 設置curl,只獲取http header,不獲取body:
或者只獲取body:

4. 訪問虛擬主機,需設置Host

5. 使用post, put, delete等REStful方式訪問url
6. php curl保存下載內容為文件

❹ php使用curl帶cookie訪問一直失敗求助

樓主可以借鑒下,首先,利用curl發送post請求登錄login.php,成功,並且保存了cookie文件。
第二步,post發送數據包到co_get_corule.php,失敗,得到登錄頁面的源碼
於是,嘗試簡單的get請求,get獲取index.php,同上,依舊是cookie沒帶上的效果。
第三步,檢查cookie文件,確實存在,且內容也是正確的。如果樓主有時間的話,可以多去後盾人學習,裡面有不錯的東西

❺ php curl的幾種用法

總結一下項目中用到curl的幾種方式
1. php curl的默認調用方法,get方式訪問url
$ch = curl_init();
curl_setopt($ch, CURLOPT_HTTPHEADER, $header); //設置http頭
curl_setopt($ch, CURLOPT_ENCODING, gzip ); //設置為客戶端支持gzip壓縮
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30 ); //設置連接等待時間
curl_setopt($ch, CURLOPT_URL, $url );
curl_exec( $ch );
if ($error = curl_error($ch) ) {//出錯處理return -1;}fclose($fp);
$curl_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); //獲取http返回值
if( $curl_code == 200 ) {
//正常訪問url}//異常
2. 設置http header支持curl訪問lighttpd伺服器Java代碼$header[]= 'Expect:';
$header[]= 'Expect:';
3. 設置curl,只獲取http header,不獲取body:Java代碼curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_NOBODY, 1);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_NOBODY, 1);
或者只獲取body:Java代碼curl_setopt($ch, CURLOPT_HEADER, 0); // make sure we get the body
curl_setopt($ch, CURLOPT_NOBODY, 0);
curl_setopt($ch, CURLOPT_HEADER, 0); // make sure we get the body
curl_setopt($ch, CURLOPT_NOBODY, 0);
4. 訪問虛擬主機,需設置Host
$header[]= 'Host: '.$host;
5. 使用post, put, delete等REStful方式訪問urlpost:curl_setopt($ch, CURLOPT_POST, 1 );
put, delete:
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, DELETE); //或者PUT,需要伺服器支持這些方法。
6. 保存下載內容為文件

❻ php curl訪問鏈接返回空,列印沒有error,但是瀏覽器打開有數據

有可能對方加了抓取限制,對方判斷是curl的輸出空string
你可以試試帶cookie、頭信息和經常更換ip之類的

❼ PHP使用curl訪問https頁面的問題

你試試 curl_multi_getcontent( resource $ch ) 我記得這個東西是要接受的 忘了是在傳過去的頁面還是本頁面

❽ PHP curl如何實現對需要用戶名和密碼的URL的訪問

抓包看傳了些什麼數據,用curl模擬http請求發送post數據,成功後記下cookies去訪問URL1

❾ php使用curl訪問的頁面中,出現重定向時, 如何獲取重定向後的內容

程序沒問題,能得到網頁內容並輸出。
有可能是你的 xxx.php 沒有重定向成功。

如果在Linux下,可以先用
wget http://www.xxx.com/xxx.php
看看有沒有輸出想要的結果。

我用來測試的 xxx.php

<?php
function redirect($url)
{
if(headers_sent()) {
return false;
}
if(substr($url, 0, 4) != 'http') {
$schema = $_SERVER['SERVER_PORT'] == '443' ? 'https' : 'http';
$host = strlen($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : $_SERVER['SERVER_NAME'];
$url = "$schema://$host$to";
}
header("HTTP/1.1 301 Moved Permanently");
header("Location: $url");
exit();
}
redirect('http://google.com/');

❿ PHP使用curl的問題

這是PHP對於curl的一個解釋,簡單地說就是,curl是一個庫,能讓你通過URL和許多不同種的伺服器進行勾搭、搭訕和深入交流,並且還支持許多協議。並且人家還說了curl可以支持https認證、http post、ftp上傳、代理、cookies、簡單口令認證等等功能啦。

熱點內容
我的表姐迪克電腦密碼多少 發布:2025-01-10 03:27:40 瀏覽:766
主機訪問P 發布:2025-01-10 03:17:09 瀏覽:755
滴滴出行腳本 發布:2025-01-10 03:17:03 瀏覽:743
安卓扁口有線耳機哪個好 發布:2025-01-10 03:12:06 瀏覽:643
cubemx中的時鍾如何配置 發布:2025-01-10 03:09:51 瀏覽:726
電腦頁面怎麼設置密碼 發布:2025-01-10 03:05:41 瀏覽:878
mp4加密提取 發布:2025-01-10 03:05:39 瀏覽:838
我的世界伺服器地址後綴 發布:2025-01-10 02:55:40 瀏覽:522
百分30利潤怎麼演算法 發布:2025-01-10 02:47:26 瀏覽:964
怎麼查看已連接的wifi密碼 發布:2025-01-10 02:45:59 瀏覽:24