課程
/后端開發(fā)
/PHP
/PHP中的數(shù)據(jù)傳輸神器cURL
未將對象引用設置到對象的實例?我也是這個問題
2014-11-07
源自:PHP中的數(shù)據(jù)傳輸神器cURL 2-3
正在回答
二樓的可以解決,但是不知道為什么!
流浪滴汪汪汪
添加 curl_setopt($curlobj, CURLOPT_USERAGENT, "user-agent:Mozilla/5.0 (Windows NT 5.1; rv:24.0) Gecko/20100101 Firefox/24.0"); ?即可
慕沐2779526
curl_setopt ( $curl_obj, CURLOPT_USERAGENT, 瀏覽器UA可自行填寫);
首先我用html的form測試可以獲取到信息,說明服務端沒有問題
然后我獲取自己寫的一個1.php,可以抓取到POST信息,說明代碼一般是可以抓取到信息的。
猜測問題出在服務端對header進行了檢測,
那么嘗試加上user-agent
添加以下代碼
curl_setopt ( $curl_obj, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
成功獲取到數(shù)據(jù)。
完整代碼如下:
<?php ????$data?=?'theCityName=北京'; ????$curl_obj?=?curl_init();?//?初始化 ????$url?=?'http://www.webxml.com.cn/WebServices/WeatherWebService.asmx/getWeatherbyCityName'; ????$url2?=?'http://www.webxml.com.cn/WebServices/WeatherWebService.asmx/getSupportProvince'; ????$url3?=?'http://localhost/1110/1.php'; ????curl_setopt($curl_obj,?CURLOPT_URL,?$url);?//?設置訪問URL ????curl_setopt?(?$curl_obj,?CURLOPT_USERAGENT,?$_SERVER['HTTP_USER_AGENT']); ????curl_setopt($curl_obj,?CURLOPT_HEADER,?0);?//?啟用時會將頭文件的信息作為數(shù)據(jù)流輸出 ????curl_setopt($curl_obj,?CURLOPT_RETURNTRANSFER,?1);?//?執(zhí)行之后不直接打印出來 ????//?curl_setopt($curl_obj,?CURLOPT_POST,count($data)); ????curl_setopt($curl_obj,?CURLOPT_POST,?1);?//?啟用時會發(fā)送一個常規(guī)的POST請求,類型為:application/x-www-form-urlencoded,就像表單提交的一樣。 ????curl_setopt($curl_obj,?CURLOPT_POSTFIELDS,?$data);?//?全部數(shù)據(jù)使用HTTP協(xié)議中的"POST"操作來發(fā)送。要發(fā)送文件,在文件名前面加上@前綴并使用完整路徑。這個參數(shù)可以通過urlencoded后的字符串類似'para1=val1¶2=val2&...'或使用一個以字段名為鍵值,字段數(shù)據(jù)為值的數(shù)組。如果value是一個數(shù)組,Content-Type頭將會被設置成multipart/form-data。 ????curl_setopt($curl_obj,?CURLOPT_HTTPHEADER,?array( ????????????'Content-Type:?application/x-www-form-urlencoded;', ????????????'Content-length:'.strlen($data) ????????????)); ????$rtn?=?curl_exec($curl_obj);?//?執(zhí)行 ????if?(!curl_errno($curl_obj))?{ ????????echo?$rtn; ????}?else?{ ????????echo?'Curl?error:?'?.?curl_errno($curl_obj); ????} ????curl_close($curl_obj);?//?關閉資源 ?>
我這里也是這個問題,用form提交的post就沒有這個問題.
舉報
cURL就是這樣的利器,可以幫助大家操作各種網(wǎng)絡資源
4 回答總是報錯:未將對象引用設置到對象的實例。
2 回答老師,如何發(fā)送帶已有cookie的post?
2 回答PHP.ini開啟了curl擴展和windows支持curl是一樣的嗎??
2 回答基本傳輸原理?。?/p>
1 回答有人碰到過設置了長度就登錄不了的問題嗎?
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學習伙伴
掃描二維碼關注慕課網(wǎng)微信公眾號
2015-09-30
二樓的可以解決,但是不知道為什么!
2014-11-26
添加 curl_setopt($curlobj, CURLOPT_USERAGENT, "user-agent:Mozilla/5.0 (Windows NT 5.1; rv:24.0) Gecko/20100101 Firefox/24.0"); ?即可
2014-11-10
curl_setopt ( $curl_obj, CURLOPT_USERAGENT, 瀏覽器UA可自行填寫);
2014-11-10
首先我用html的form測試可以獲取到信息,說明服務端沒有問題
然后我獲取自己寫的一個1.php,可以抓取到POST信息,說明代碼一般是可以抓取到信息的。
猜測問題出在服務端對header進行了檢測,
那么嘗試加上user-agent
添加以下代碼
curl_setopt ( $curl_obj, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
成功獲取到數(shù)據(jù)。
完整代碼如下:
2014-11-10
我這里也是這個問題,用form提交的post就沒有這個問題.