Как сделать вызов формы POST в php + json

Я хочу сделать POST-вызов из PHP в свой API Python

вот эквивалент в Python:

import requests
import json
payload = json.dumps({'serviceID':'131001086184'})
r = requests.post('http://17.../todo/api/line/v1.0/tasks', data=dict(data=payload))
print r.content

Работает как шарм.

Здесь эквивалент в curl:

curl -i -F data='{"serviceID":"131001086184"}' http://17.../todo/api/line/v1.0/tasks

Тоже работает.

Теперь PHP:

<?php
$url = 'http://17.../todo/api/line/v1.0/tasks';
$postData = array('serviceID' => '131001086184');
$context = stream_context_create(array(
    'http' => array(
        'method' => 'POST',
        'header' => "Content-Type: application/json\r\n"
        'content' => json_encode($postData)
    )
));

$response = file_get_contents($url. FALSE. &context)
$responseData = json_decode($response, TRUE);
echo $responseData['published'];
?>

Не работает, и я не получаю сообщения об ошибке. Что мне не хватает?

var_dump($response); exit; Что это дает?
delboy1978uk 19.06.2018 12:43

Это твой настоящий код? Если это так, то в вашем file_get_contents() допущена опечатка, вы объединяете переменные вместо того, чтобы отправлять 3 параметра; вам нужны запятые.

jeroen 19.06.2018 12:49
Стоит ли изучать 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
2
44
1

Ответы 1

В вашем коде $response = file_get_contents($url. FALSE. &context) Вы объединяете $ url с FALSE и & context,

Используйте следующее:-

 $response = file_get_contents($url, FALSE, &context);

это не меняет результата

Dimitry Kotovka 19.06.2018 13:23

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