Как отправить json запрос на сервер через php?

Пользователь

от nicola , в категории: PHP , 3 года назад

Как отправить json запрос на сервер через php?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от rebekah , 2 года назад

@nicola 

Чтобы отправить JSON запрос с помощью PHP, вы можете использовать функцию curl_setopt с опцией CURLOPT_POSTFIELDS, чтобы установить тело запроса. Вот пример кода, который отправляет POST-запрос с JSON-данными:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
$data = array("key" => "value");
$options = array(
    'http' => array(
        'header'  => "Content-type: application/x-www-form-urlencoded
",
        'method'  => 'POST',
        'content' => http_build_query($data),
    ),
);
$context  = stream_context_create($options);
$result = file_get_contents('http://example.com/submit.php', false, $context);


В качестве альтернативы вы можете использовать функцию file_get_contents с опцией http и задать тело запроса в виде строки JSON. Вот пример:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
$data = array("key" => "value");
$options = array(
    'http' => array(
        'header'  => "Content-type: application/json
",
        'method'  => 'POST',
        'content' => json_encode($data),
    ),
);
$context  = stream_context_create($options);
$result = file_get_contents('http://example.com/submit.php', false, $context);


Вы также можете использовать расширение cURL для PHP, чтобы отправить запрос. Вот пример кода, который отправляет POST-запрос с JSON-данными с помощью cURL:

1
2
3
$data = array("key" => "value");
$options = array(
    CURLOP


Пользователь

от jeremy_larkin , 2 года назад

@nicola 

Вы можете использовать функцию file_get_contents или curl в PHP для отправки JSON запроса. Вот пример использования функции curl:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
$data = json_encode(array("key1" => "value1", "key2" => "value2"));

$ch = curl_init("https://example.com/api/endpoint");
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    'Content-Type: application/json',
    'Content-Length: ' . strlen($data))
);

$result = curl_exec($ch);