使用CURL的XML请求

时间:2014-06-14 16:32:06

标签: php xml api rest curl

我正在使用curl库来获取XML但是收到与主机连接的错误。以下是我的代码,我刚刚删除了凭据。

$url="https://interface.callport.net:8080/P-RVWR-drcm01-cti/call/2142100570";

$curl_post_data = array(
  "query_type" => 'caller_info',
  "dnis" => '8883874944',
);

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);    
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); 
curl_setopt($ch, CURLOPT_USERPWD, base64_encode('webapi@fastfix:color43t'));
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $curl_post_data);

$result = curl_exec($ch);

if(curl_errno($ch))
{
  echo 'Curl error: ' . curl_error($ch);
}
else
{    
  echo $result;
}

curl_close($ch);

1 个答案:

答案 0 :(得分:0)

这是SSL所以这通常可以解决问题。 cURL当时不验证证书。

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

[编辑]我解决了这些问题。首先是SSL,如上所述,然后我删除了用户名和密码的base64编码,更改了所以数据是通过GET而不是POST发送的,最后修复了标题。

$url="https://interface.callport.net:8080/P-RVWR-drcm01-cti/call/2142100570?query_type=caller_info&dnis=8883874944";

$ch = curl_init();
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/xml'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);    
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); 
curl_setopt($ch, CURLOPT_USERPWD, 'webapi@fastfix:color43t');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);