Как правильно установить заголовки для запроса json через curl - PullRequest
0 голосов
/ 13 мая 2018

Я новичок в API, Curl и Json. Мне нужно связать мое приложение с API.

API, к которому я хочу подключиться, имеет пример CURL:

curl -v -H "Accept: application/json" -H "Content-type: application/json" -X GET  https://www.api.com -u 'user:token'

Я провел некоторое исследование и сделал запрос, подобный этому:

$url = "https://www.api.com";

    $headers = array(
        -H "Accept: application/json",
        -H "Content-type: application/json"
        -u 'Authorization: Basic '. base64_encode("user:token") // <---   
    );

        //initializing curl object
        $curl = curl_init();
        //adding fields to the curl object to enter the site
        curl_setopt($curl, CURLOPT_URL, $url);
        curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);  
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); 
        curl_setopt($curl, CURLOPT_ENCODING, 'gzip,deflate');

        //executing the curl call and getting data back
        $json = curl_exec($curl);

        curl_close($curl); // close the connection
        //echo $json;   
        return $json;

Я получаю запрос Json, но я все еще не понимаю пример, который дает API. Я даже не знаю, правильно ли я устанавливаю керл.

Может кто-нибудь объяснить мне, как я могу интерпретировать пример Curl, если я делаю это хорошо?

1 Ответ

0 голосов
/ 13 мая 2018

Это недопустимый синтаксис PHP:

$headers = array(
    -H "Accept: application/json",
    -H "Content-type: application/json"
    -u 'Authorization: Basic '. base64_encode("user:token") // <---   
);

Вы должны использовать это вместо:

$headers = array(
    'Accept: application/json',
    'Content-type: application/json',
);

А для аутентификации используйте это:

curl_setopt($curl, CURLOPT_USERPWD, $username . ':' . $password); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...