调用人脸识别时,接口要求必须使用json格式发起post请求
从网上查找返现没有报错但是 执行结果一直返回false
public function http_post_data($url, $data_string) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER,array("Content-type: application/json;charset='utf-8'"));
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
// curl_setopt($ch, CURLOPT_HTTPHEADER, array(
// 'Content-Type:application/json;charset=utf-8',
// 'Content-Length:' . strlen($data_string)
// )
// );
$output = curl_exec($ch);
curl_close($ch);
if(curl_error($ch)){
//请求失败,返回错误信息
return curl_error($ch);
}else{
//请求成功,返回信息
return json_decode($output,true);
}
// $return_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
// return $output;
}
经过长时间的斗争发现 postman可以展示curl请求的过程,
经过整理形成:
public function http_post_data($url, $data_string) {
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_PORT => "443",
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_CONNECTTIMEOUT => 1,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => $data_string,
CURLOPT_HTTPHEADER => array(
"cache-control: no-cache",
"content-type: application/json",
"postman-token: 656460c0-285e-54fc-3fe9-2d80d042a437"
),
CURLOPT_USERAGENT => 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.116 Safari/537.36',
));
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;exit;
} else {
echo $response;exit;
}
}
调用后发现报错:
SSL certificate problem: unable to get local issuer certificate
经过了解查找在curl 数组中添加即可:
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_SSL_VERIFYHOST => false,