Я работаю с действительно базовым API cURL. Я до сих пор не работал с cURL, поэтому я делаю все возможное, чтобы ощущать это.Работа с API cURL
Для этого примера предположим, что есть два значения, которые я могу передать API: адрес электронной почты и местоположение.
Кроме того, я должен использовать базовую HTTP-аутентификацию, где пароль пуст, а имя пользователя - это мой ключ API.
Чтобы помочь вам понять, что я иду, это пример, приведенный ко мне в документации API:
$ curl -X POST https://therequestpath -u $API_KEY: \
--form email=myemailaddress \
--form location='mylocation' \
--form content-type=application/json
{"id":"750ea3d7"}
В этот момент я действительно не совсем понимаю, что я делаю, но это код, который я придумал до сих пор (не бросать какие-либо ошибки PHP, но это не делает то, что я хочу, либо):
$username = 'myapikey';
$password = '';
$host = 'https://therequestpath';
$data = array('email' => 'myemailaddress', 'location' => 'mylocation');
$process = curl_init($host);
curl_setopt($process, CURLOPT_HTTPHEADER, array('Content-Type: application/xml'));
curl_setopt($process, CURLOPT_HEADER, 1);
curl_setopt($process, CURLOPT_USERPWD, $username . ":" . $password);
curl_setopt($process, CURLOPT_TIMEOUT, 30);
curl_setopt($process, CURLOPT_POST, 1);
curl_setopt($process, CURLOPT_POSTFIELDS, $data);
curl_setopt($process, CURLOPT_RETURNTRANSFER, TRUE);
curl_exec($process);
curl_close($process);
Я не уверен, если я «Ошибка при аутентификации HTTP, передача значений по электронной почте/местоположению или и то, и другое. Любая помощь будет оценена по достоинству.
В PHP не следует отправлять тип содержимого приложения/json' вместо 'application/xml'? –
Также обратите внимание, что вы используете 'content-type' в командной строке, но' Content-Type' в PHP. Это может иметь значение. И я также не понимаю последние две строки вашего примера из командной строки - разве вы не опустили символ \ в конце четвертой строки? –
@ peci1 - API принимает как json & xml. Прямо перед тем, как я разместил здесь, я изменил свой код с json на xml, чтобы узнать, не изменилось ли это. Я просто забыл удалить его, прежде чем скопировать код. Спасибо за уловку. Случай с контентом был одним из моих вопросов! Спасибо за хороший глаз. Я не уверен, что в ближайшее время я поймаю это по-своему. Вторая проблема заключалась в одинарных кавычках в массиве $ data. После того как я удалил эти * и * сменил тип содержимого, все сработало. – Duplosion