curl как отформатировать запрос curl с помощью ключа API в php

Привет, я новичок в curl, но он нужен для конкретного проекта. Не могли бы вы помочь мне отформатировать этот код для работы? Я хотел бы получить результаты и распечатать необработанный JSON на странице. Вот код, который я использую.

$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, "curl -u api key: https://api.companieshouse.gov.uk/search/companies");
$x = curl_exec($curl);
curl_close($curl);
print($x);

это ссылка на страницу API, которую я пытаюсь использовать https://developer.companieshouse.gov.uk/api/docs/search/companies/companysearch.html

это пример, который они дают на странице

curl -uYOUR_APIKEY_FOLLOWED_BY_A_COLON: 
https://api.companieshouse.gov.uk/search/companies

это параметры для вызова, если возможно, я хотел бы установить их также

q (required)
items_per_page (optional)
start_index (optional)

person user2692997    schedule 20.03.2018    source источник
comment
Вы делаете завиток на основе php-кода или завиток из командной строки? Я спрашиваю из-за этого ключа `curl -u API: api.companieshouse.gov.uk/search/ компании это код командной строки. Если вы делаете curl на основе php-кода, используйте этот код stackoverflow.com/a/32596799 /6160662 и проголосуйте за автора, если он работает :)   -  person Vinay    schedule 20.03.2018
comment
@Viney, эй, я знаю, что это многого требует, но не могли бы вы показать мне пример кода для php, соответствующий моей потребности, заранее спасибо   -  person user2692997    schedule 21.03.2018
comment
Хорошо... сначала скажите, вы хотите сделать это в php-скрипте или из командной строки?   -  person Vinay    schedule 21.03.2018
comment
@Viney нет, если возможно, я бы хотел запустить его из веб-браузера   -  person user2692997    schedule 22.03.2018


Ответы (2)


Спасибо за эту возможность узнать больше о curl :-)

Я проверил код ниже, он работает. Конечно, вы должны быть зарегистрированы на сайте и иметь свой API-ключ. Затем вы предоставите его как имя пользователя/пароль, но без имени пользователя (это написано здесь на сайте).

$searchvalue= 'Test';

$curl = curl_init("https://api.companieshouse.gov.uk/search/companies?q=$searchvalue");

curl_setopt($curl, CURLOPT_USERPWD, "your_api_key_provided_by_the_site");

// curl_setopt($curl, CURLOPT_HEADER, true); // when debugging : to show returning header

$rest = @curl_exec($curl);
print_r($rest);

if(curl_errno($curl))
{
    echo 'Curl error : ' . curl_error($curl);
}

@curl_close($curl);
person b2vincent    schedule 27.03.2018
comment
Отключение безопасности SSL похоже на занятие любовью без презерватива со странной малышкой без зубов и свежими следами от уколов на предплечье. Пожалуйста, никогда никому не советуйте такие вещи публично. Вместо этого узнайте, как правильно настроить curl. - person emix; 27.03.2018
comment
ОК, исправлено. Однако совет легко найти на SO, и он не обязательно будет отвергнут. - person b2vincent; 27.03.2018

Я упростил ваш запрос. Вы можете попробовать это, используя приведенный ниже код.

$params = array("q"=>"<Some Value>","items_per_page"=>"<Some Value>","start_index"=>"<Some Value>");

$curl = curl_init();
curl_setopt($curl, CURLOPT_USERPWD, "api key:");
curl_setopt($curl, CURLOPT_URL, "https://api.companieshouse.gov.uk/search/companies?".http_build_query($params));
$x = curl_exec($curl);
curl_close($curl);
print($x);
person Muneer Alam    schedule 27.03.2018