Как использовать POST-запрос в PHP с FullContactAPI для пакетных запросов?

Я не могу запросить данные в пакетном режиме из полноконтактного 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);

Написание выполнения оболочки, которая работала правильно.

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'

Но я не хочу вызывать shell_exec из php для этого. Я хочу, чтобы функции cURL работали. Что не так?

3 ответа

Решение

Хорошо. Поэтому я думаю, что нашел свой ответ. Мне просто нужно было изменить этот массив в строку. И это сработало отлично.

$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"]}';

Попробуйте, я проверил это и работал нормально. Нет необходимости отправлять данные в почтовом методе

$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);

Вы можете попробовать удалить одинарные кавычки из массива запроса.

"requests" => ["https://api.fullcontact.com/v2/person.json?email=bart@fullcontact.com","htps://api.fullcontact.com/v2/person.json?email=jigarbhatt30893@yahoo.co.in"]
Другие вопросы по тегам