2012-06-14 57 views
0

我是新来的PHP,我试图创建一个简单的例子来调用我们公司的API。我得到了NetBeans IDE 7.1.2昨天晚上工作(耶),但我似乎无法得到以下代码来显示任何东西。我可以在调试器中运行它。我可以穿过它。我甚至可以没有错误地结束,但curl_exec只返回0.我已经添加了CURLOPT_PROXYPORT,这样我就可以看到流量,但提琴手什么也看不到。我也试图运行这个作为一个PHP命令行(如果有任何方向)。PHP cURL Json Post - 做错事

我知道我在做一些愚蠢的事......但这是愚蠢的问题。

<?php 
$url = 'https://target.boomerang.com/api/JobCreate'; 
$authToken = 'phptest'; 
$data = array(
    "emailHTML" => "Howdy", 
    "jobKind" => "email", 
    "senderEmail" => "[email protected]", 
    "subject" => "My howdy email" 
); 
$data_string = json_encode($data); 
$headers = array(
    'Content-type: application/json', 
    'auth_token: ' . $authToken, 
    'Accept: application/json', 
    'Expect:' 
); 
$ch = curl_init(); 
$args = array(
    CURLOPT_URL => $url, 
    CURLOPT_FOLLOWLOCATION => TRUE, 
    CURLOPT_RETURNTRANSFER => TRUE, 
    CURLOPT_POST => TRUE, 
    CURLOPT_POSTFIELDS => $data_string, 
    CURLOPT_HTTPHEADER => $headers, 
    CURLOPT_PROXYPORT => "localhost:8888" 
); 
curl_setopt_array($ch, $args); 
$res = curl_exec($ch); 
$res_data = json_decode($res, true); 
print($res_data); 
?> 

感谢您的帮助。

+0

[curl_error()](http://www.php.net/manual/en/function.curl-error.php)调用(放在curl_exec()之后返回)是什么? – raina77ow

+0

我现在检查curl_error()。谢谢!顺便说一句,如果你想测试,我所包含的临时auth_token应该可以工作。 –

+0

哦!这有帮助! “SSL证书问题,请验证CA证书是否正常。详细信息: 错误:14090086:SSL例程:SSL3_GET_SERVER_CERTIFICATE:证书验证失败” –

回答

0

所以这个问题是由SSL证书不匹配造成的?我想这可以通过添加此得到解决......

CURLOPT_SSL_VERIFYHOST => 0, 
CURLOPT_SSL_VERIFYPEER => 0, 

...到$ args数组。

+0

这样做!其实我只是添加CURLOPT_SSL_VERIFYPEER => false根据这篇文章:http://unitstep.net/blog/2009/05/05/using-curl-in-php-to-access-https-ssltls-protected-sites/ - 谢谢你的帮助! –