这里写自定义目录标题
PHP curl http请求重复两次发生的疑问
PHP本就不太属性,遇到问题求助!!
遇到的问题
调用外部接口,连接其他的系统。登录后调用票据认证,发生异常。
问题描述
正常的请求
调用第一个登录的http请求,正常返回了票据编码。
异常问题
但是在接下来的动作中要求用该票价编码再请求session时发生一次,而验证票据的接口只能请求使用一次。在第二次调用时票据就失效。
代码如下:
public function https_request1($url, $data = null, $arr_header = [])
{
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($curl, CURLOPT_TIMEOUT ,0 );
//curl_setopt($curl, CURLOPT_HTTP_VERSION , CURL_HTTP_VERSION_1_1);
if (!empty ($data)) {
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
}
if (!empty($arr_header)) {
curl_setopt($curl, CURLOPT_HTTPHEADER, $arr_header);
}
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$output = curl_exec($curl);
curl_close($curl);
return $output;
}
目前该票据在postman中请求是没有问题,返回正确。但是通过如上代码后不能返回正常的结果,实际返回的信息和postman第二次重复请求的信息是一致的。
经过网上资料的查找,似乎$curl = curl_init();会发送一次请求,所以怀疑发送了两次请求。
这样的问题如何的措施能够规避?