我有邮递员的API.我想创建一个CURL请求并获得适当的响应.这是我的POSTMAN API.
我成功地得到了这个回应.
"{\"Request\":{\"state\":\"Manama\",\"address\":\"406 Falcon Tower\",\"address2\":\"Diplomatic Area\",\"city\":\"Manama\",\"country\":\"BH\",\"fullname\":\"Dawar Khan\",\"postal\":\"317\"},\"Response\":{\"status\":\"Success\",\"code\":100,\"message\":\"Address is verified\"}}"
现在我想在我的PHP代码中使用这个API调用.我用过这段代码.
$data = array( 'Request' => 'ValidateAddress','address' => test_input($form_data->address),'secondAddress' => test_input($form_data->secondAddress),'city' => test_input($form_data->city),'country' => test_input($form_data->country),'name' => test_input($form_data->name),'zipCode' => test_input($form_data->zipCode),'merchant_id' => 'shipm8','hash' => '09335f393d4155d9334ed61385712999' ); $data_string = json_encode($data); $url = 'myurl.com/'; $ch = curl_init($url); curl_setopt($ch,CURLOPT_CUSTomrEQUEST,"POST"); curl_setopt($ch,CURLOPT_POSTFIELDS,$data_string); curl_setopt($ch,CURLOPT_RETURNTRANSFER,true); curl_setopt($ch,CURLOPT_HTTPHEADER,array( 'Content-Type: application/json','Content-Length: ' . strlen($data_string)) ); $result = curl_exec($ch); curl_close($ch); $json_result = json_decode($result,true); echo '<pre>';print_r($json_result);echo '</pre>';
但我看不到我的$json_result.它只是回应< pre>< / pre>在视图中.谁能指导我?提前致谢.我想得到我的回复.
UPDATE
我使用了curl_error,它给了我以下错误.
Curl error: SSL certificate problem: self signed certificate in certificate chain
解决方法
根据更新的问题更新答案.
冗长,耗时但干净
>在Web浏览器中访问URL.
>打开安全细节.
>出口证明.
>相应地更改cURL选项.
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,true); curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,2); curl_setopt($ch,CURLOPT_CAINFO,getcwd() . "/CAcerts/BuiltinObjectToken-EquifaxSecureCA.crt");
快但脏
curl_setopt($ch,false);
我们正在配置cURL以接受任何服务器(对等)证书.从安全角度来看,这不是最佳选择.
摘录自very detailed and precise article的截图,以便更好地理解.请在生产现场实际实施之前参考相同的内容.