Доступ к json API с помощью php

Я пытаюсь узнать, как я могу взаимодействовать с json api. В документации они дают мне пример завитка:

Если я запускаю это как команду, она работает нормально, дает мне мои данные в формате json.

Я думал, что я на правильном пути с этим: PHP + curl, пример кода HTTP POST?

но, видимо, нет, так как я не могу понять, что делать с частью -H этой команды.

curl -H "APIKey:My:ApI;key;" -H "Content-Type:.../json" "https://urlofapp.com/API/GetTransaction" -d "{ 'CustomerID':'12345','EndDate':'2018-12-31','StartDate':'2018-01-01'}" > test.json

Попытка получить результат в массив, который я могу суммировать и показать общее количество их заказов за год.

Из приведенной выше ссылки я пытался начать с этого:

// set post fields
$post = [
'CustomerID' => 12345,
'StartDate' => 2018-01-01,
'EndDate'   => 2018-12-31,
];

$ch = curl_init('https://urlofapp.com/API/GetTransaction');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);

// execute!
$response = curl_exec($ch);

// close the connection, release resources used
curl_close($ch);

// do anything you want with your response
var_dump($response);

Часть H в команде означает HTTP-заголовок.

Pablo 19.01.2019 06:35

Покажи нам свой код. H — это HTTP-заголовок.

Set Kyar Wa Lar 19.01.2019 06:36

какой у вас код на данный момент? Без кода не могу помочь.

Pete Houston 19.01.2019 06:55

Я обновил то, что у меня есть до сих пор.

user3512531 19.01.2019 07:00
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
4
72
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Команда -h ссылается на заголовок.

Попробуйте код ниже,

// Generated by curl-to-PHP: http://incarnate.github.io/curl-to-php/
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, 'https://urlofapp.com/API/GetTransaction');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "{ 'CustomerID':'12345','EndDate':'2018-12-31','StartDate':'2018-01-01'}");
curl_setopt($ch, CURLOPT_POST, 1);

$headers = array();
$headers[] = 'Apikey: My:ApI;key;';
$headers[] = 'Content-Type: application/json';
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

$result = curl_exec($ch);
if (curl_errno($ch)) {
    echo 'Error:' . curl_error($ch);
}
curl_close ($ch);

Я использовал ниже, чтобы преобразовать команду curl в скрипт PHP,

https://incarnate.github.io/curl-to-php/

Надеюсь, это будет полезно.

Чтобы предоставить некоторый контекст для -H "Content-Type:.../json". Причина, по которой Praneeth указал «application/json» в качестве этого типа контента, заключается в том, что вы передаете закодированные данные json в этот API (ваши данные POST). Если бы вам нужно было передавать данные, закодированные в формате XML, вам нужно было бы установить для этого параметра значение «Тип содержимого: приложение/xml». Это помогает API узнать, как анализировать ваши данные.

Blane Townsend 19.01.2019 07:13

Работа с завитком напрямую обычно заканчивается болью. Существует ряд библиотек, которые могут помочь сделать такие вызовы намного проще.

Вот некоторые из них:

Другие вопросы по теме