0

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

$urltopost = "https://api.fullcontact.com/v2/batch.json?apiKey=xxxxxxxxxx";
$datatopost = array (
    "requests" => '["https://api.fullcontact.com/v2/person.json?email=bart@fullcontact.com","htps://api.fullcontact.com/v2/person.json?email=jigarbhatt30893@yahoo.co.in"]'
);
$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/person.json?email=bart@fullcontact.com","https://api.fullcontact.com/v2/person.json?email=jigarbhatt30893@yahoo.co.in"]}' --header 'content-type:application/json'

但我不想从 php 调用 shell_exec 来执行此操作。我希望 cURL 函数能够工作。怎么了?

4

3 回答 3

1

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

$datatopost = '{"requests":["https://api.fullcontact.com/v2/person.json?email=bart@fullcontact.com","https://api.fullcontact.com/v2/person.json?email=jigarbhatt30893@yahoo.co.in"]}';
于 2013-07-06T13:31:37.353 回答
1

试试这个,我已经测试过了,效果很好。无需在 post 方法中发送数据

$urltopost = "https://api.fullcontact.com/v2/person.json?apiKey=xxxxxxxxxx&email=someone@xyz.com&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);
于 2016-09-30T06:23:08.480 回答
0

您可以尝试从请求数组中删除单引号吗?

"requests" => ["https://api.fullcontact.com/v2/person.json?email=bart@fullcontact.com","htps://api.fullcontact.com/v2/person.json?email=jigarbhatt30893@yahoo.co.in"]
于 2013-07-05T11:35:59.337 回答