我正在尝试使用curl连接到WS。 我的代码:
$url ="https://example?param=ee¶m2=rr";
$headers = array(
'Content-Type:application/json',
'Authorization: Basic '. base64_encode("username:password") // <---
);
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL,$url);
curl_setopt($curl, CURLOPT_HEADER,true);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
//curl_setopt($curl, CURLOPT_USERPWD, 'username:passwrd');
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$curl_response = curl_exec($curl);
我收到此错误:
'content_type' => NULL, 'http_code' => 0, 'header_size' => 0, 'request_size' => 0, 'filetime' => -1, 'ssl_verify_result' => 0, 'redirect_count' => 0, 'total_time' => 0.051353999999999997, 'namelookup_time' => 0.0032659999999999998, 'connect_time' => 0.051365000000000001, 'pretransfer_time' => 0, 'size_upload' => 0, 'size_download' => 0, 'speed_download' => 0, 'speed_upload' => 0, 'download_content_length' => -1, 'upload_content_length' => -1, 'starttransfer_time' => 0, 'redirect_time' => 0, 'certinfo' => array ( ), 'primary_ip' => '185.18.224.30', 'primary_port' => 443, 'local_ip' => '172.23.155.94', 'local_port' => 44608, 'redirect_url' => '', )error occured during curl exec.
我无法弄清楚代码中的错误。错过了一个参数?
答案 0 :(得分:1)
尝试添加:
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
默认情况下,当您使用HTTPS协议时,CURL会检查服务器上的SSL sertificate,如果无效,则会出错。上面的一行将其关闭。
答案 1 :(得分:0)
$url ="https://example?";
$headers = array(
'Content-Type:application/json',
'Authorization: Basic '. base64_encode("username:password")
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS,"param=ee¶m2=rr");
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
// execute the request
$output = curl_exec($ch);