php - 如何在 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'];
?>
不起作用,我没有收到错误消息。我错过了什么?
解决方案
在您的代码$response = file_get_contents($url. FALSE. &context)
中,您将 $url 与 FALSE 和 &context 连接,
使用以下内容:-
$response = file_get_contents($url, FALSE, &context);
推荐阅读
- python - 从另一个具有非零值的矩阵迭代地将值添加到零矩阵
- javascript - 如果我将 appendChild() 与尚未附加到 DOM 的元素一起使用,它会导致重排吗?
- javascript - p5.js 中椭圆上的单击事件
- r - 将 ifelse() 创建的变量添加到数据框列表
- r - 将形状文件与我自己的坐标结合起来
- javascript - 当站点导航器固定到网页顶部时调整锚点
- python - LXML etree.iterparse() 中的编码错误,但 etree.parse() 中没有
- python - 从 Google App Engine 上的网络应用程序调用 Google Cloud 功能?
- css - 为什么这个 flexbox 代码没有在我的容器中的每个子 div 元素中显示我的一半复选框?
- hibernate - 休眠会话,调用方法“isJoinedToTransaction”在没有活动事务的情况下无效(当前状态:NOT_ACTIVE)