Передать массив в CURL - прочитать файл CSV - PullRequest
0 голосов
/ 22 января 2020

Мой CSV имеет один столбец с 40000 номерами телефонов

Следующий код читает столбец CSV и работает быстро

$dataArray = csvstring_to_array( file_get_contents('test.csv'));

Мой CURL код выглядит следующим образом

$ch = curl_init();

     $data = http_build_query($dataArray);

    curl_setopt($ch, CURLOPT_POSTFIELDS, $dataArray);
    curl_setopt($ch, CURLOPT_URL, "https://api.theblacklist.click/standard/api/v1/bulkLookup/key/[APIKEY]/response/json");
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_POST, 1);

    $output = curl_exec($ch);

Параметры JSON, ожидаемые API, выглядят следующим образом. Я застрял о том, как передать «телефоны»: [и затем передать массив данных CSV в качестве параметра в curl / API?

curl -XGET ''
  -H 'Content-Type: application/json' 
  -d'
{
  "phones":[
  "15555558353",
  "15555555555",
  "15555552740",
  "15555552741",
  "15555552738"
  ]
}'

1 Ответ

1 голос
/ 22 января 2020

Похоже, сервер API ожидает, что JSON -форматированные данные будут переданы как тело POST

$dataArray = csvstring_to_array(file_get_contents('test.csv'));
$jsonString = json_encode(['phones' => array_values($dataArray)]);

curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonString);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...