2013-07-05 110 views
0

我无法从fullcontact API批量请求数据。收到的响应是使用以下代码的“无效查询对象”:如何在PHP中使用FullContactAPI的批量请求POST请求?

$urltopost = "https://api.fullcontact.com/v2/batch.json?apiKey=xxxxxxxxxx"; 
$datatopost = array (
    "requests" => '["https://api.fullcontact.com/v2/[email protected]","htps://api.fullcontact.com/v2/[email protected]"]' 
); 
$header=array("content-type"=>"application/json"); 
$ch = curl_init ($urltopost); 
curl_setopt ($ch, CURLOPT_POST, true); 
curl_setopt ($ch, CURLOPT_POSTFIELDS, $datatopost); 
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt ($ch, CURLOPT_HTTPHEADER, $header); 
$returndata = curl_exec ($ch); 
print_r($returndata); 

编写正常工作的shell执行。

curl --request POST "https://api.fullcontact.com/v2/batch.json?apiKey=xxxxxxxxxx" --data '{'requests':["https://api.fullcontact.com/v2/[email protected]","https://api.fullcontact.com/v2/[email protected]"]}' --header 'content-type:application/json' 

但我不想从PHP调用shell_exec来做到这一点。我想让cURL函数起作用。出了什么问题?

+0

感谢Danny的编辑帮助。一段时间以来,我对这个问题非常严重。 –

+0

以下是提供Post请求示例的链接。 http://www.fullcontact.com/developer/docs/batch/ –

回答

1

好的。所以我想我找到了自己的答案。我只需要将该数组更改为字符串。它的工作完美。

$datatopost = '{"requests":["https://api.fullcontact.com/v2/[email protected]","https://api.fullcontact.com/v2/[email protected]"]}'; 
+0

它没有工作 –

1

试试这个,我已经测试过它并且工作正常。无需发送后数据的方法

$urltopost = "https://api.fullcontact.com/v2/person.json?apiKey=xxxxxxxxxx&[email protected]&method=email"; 

$header=array("content-type"=>"application/json"); 
$ch = curl_init ($urltopost); 
curl_setopt ($ch, CURLOPT_POST, true); 
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt ($ch, CURLOPT_HTTPHEADER, $header); 
$returndata = curl_exec ($ch); 
print_r($returndata);