首页 > 解决方案 > 如何在 php + json 中进行 POST 表单调用

问题描述

我想从 PHP 对我的 python API 进行 POST 调用

这是 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'];
?>

不起作用,我没有收到错误消息。我错过了什么?

标签: phppythonjsoncurlpost

解决方案


在您的代码$response = file_get_contents($url. FALSE. &context) 中,您将 $url 与 FALSE 和 &context 连接,

使用以下内容:-

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

推荐阅读