php使用curl发送post请求发生错误,记录下

php代码如下

$url = "xxxxxx";

$curl = curl_init();
curl_setopt($curl,CURLOPT_URL,$url);
curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);
curl_setopt($curl, CURLOPT_TIMEOUT,30);   //只需要设置一个秒的数量就可以

$data = http_build_query(array('url_content'=>$urlData['url_id']));//转换成键值对的形
$cookie_file = "./google.txt"; //cookie存放地址
//设置时区
date_default_timezone_set('PRC');
curl_setopt($curl,CURLOPT_COOKIESESSION,1);
curl_setopt($curl,CURLOPT_COOKIEFILE,$cookie_file);
curl_setopt($curl,CURLOPT_COOKIEJAR,$cookie_file);
curl_setopt($curl,CURLOPT_COOKIE,session_name() . '=' . session_id());
curl_setopt($curl,CURLOPT_FOLLOWLOCATION,1);
curl_setopt($curl,CURLOPT_POST,1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);//要发送的数据
curl_setopt($curl,CURLOPT_HTTPHEADER,array("application/x-www-form-urlencoded;charset=utf-8","Content-length:".strlen($data)));//http
$OutPut = curl_exec($curl);//

这个请求的网址是当前主机下的另外一个文件,程序使用的是ThinkPHP,请求执行会失败,错误号 28 ,对应的错误是 CURLE_OPERATION_TIMEDOUT,查看错误日志发现是 ThinkPHP session()函数的下面一行报错

// 启动session
if(C('SESSION_AUTO_START'))  session_start();

在if上面添加了

file_put_contents("./curl.text","1",FILE_APPEND);

发现重复调用了很多次,把curl代码中设置cookie的四句代码去掉久ok了,先不调试了,之后有时间再来弄明白

标签: none

添加新评论