CURL с JSON от laravel до API - PullRequest
       1

CURL с JSON от laravel до API

0 голосов
/ 29 апреля 2019

Я пытаюсь реализовать вызов API из моей системы, и у API есть пример, который выглядит следующим образом:

curl -u "<brugernavn>:<password>" -XPOST http://distribution.virk.dk/cvr-permanent/_search -d'
{ "from" : 0, "size" : 1,
  "query": {
    "term": {
      "cvrNummer": 10961211
    }
  }
}
'

Теперь я хочу превратить это в код php.Я думаю, что это будет выглядеть примерно так:

        public function requestApiV2($vat){

     // Start cURL
     $ch = curl_init();

     // Determine protocol
     $protocol = 'http';
     $parameters = json(
        { "from" : 0, "size" : 1,
            "query": {
              "term": {
                "cvrNummer": $vat
              }
            }
          }
     );
     // Set cURL options
    curl_setopt($ch, CURLOPT_URL, $protocol . '://distribution.virk.dk/cvr-permanent/_search' . http_build_query($parameters));
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
      // Parse result
    $result = curl_exec($ch);
    // Close connection when done
    curl_close($ch);

    // Parse from json to array
    $data = json_decode($result, true);

}

Я пока не могу проверить это, так как мне все еще нужно получить имя пользователя и пароль из API, но я также не уверен в том, как отправить имя пользователяи пароль вместе с запросом в правильном порядке.Есть ли CURLOPT для этого?Я также не уверен, правильно ли реализованы мои параметры с помощью json.

спасибо:)

1 Ответ

1 голос
/ 29 апреля 2019

использование библиотека Guzzle . Laravel включает библиотеку Guzzle, поэтому вам не нужно устанавливать ее

С Guzzle ниже будет делать

use GuzzleHttp\Client;

public function requestApiV2($vat){

$client = new Client([
    // Base URI is used with relative requests
    'base_uri' => 'http://distribution.virk.dk/,
]);


$response = $client->post('cvr-permanent/_search', [
    'auth' => ['username', 'password'],
    'json' => [
        'from' => 0,
        'size' => 1,
        'query' => [
            'term' => [ 
                'cvrNumber' => $vat
            ]
        ]
    ]
]);

$body = $response->getBody();
dd($body);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...