我在邮递员中有一个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>
。谁能指导我?提前致谢。我想得到Response
。
更新
我使用了curl_error,它给了我以下错误。
卷曲错误:SSL证书问题:证书链中的自签名证书
答案 0 :(得分:7)
答案 1 :(得分:3)
根据更新的问题更新答案。
有两种方法可以解决这个问题
冗长,耗时但干净
相应地更改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, CURLOPT_SSL_VERIFYPEER, false);
我们正在配置cURL
以接受任何服务器(对等)证书。从安全角度来看,这不是最佳选择。
摘自very detailed and precise article的屏幕截图,以便更好地理解。请在生产现场实际实施之前参考相同的内容。