我正在尝试将带有一些 json 数据的 python http 请求(稍后我将使用此 json 数据)发送到服务器。服务器应该给出一些 json 数据的响应(使用 PHP)。不幸的是,即使请求状态代码为 200,也没有任何响应。请提供任何帮助!#request.pyimport requestsimport urllib3import jsonimport osimport timeimport sys#http Requesturl = 'http://localhost/response.php'headers = {'Content-type': 'application/json', 'Accept': 'application/json'}while True: postMessage = '{"Info": {"ID": 1, "IP": "192.168.1.1"}}' response = requests.post(url, json=postMessage, headers=headers) #trying to decode the response try: decodedresponse = json.loads(response.text) print(decodedresponse) except(ValueError, KeyError, TypeError): print("some Error")#always getting the above print statement! break#response.php<?phpif(!empty($_POST['json'])){ $data = [ 'a', 'b', 'c' ]; header('Content-type:application/json;charset=utf-8'); echo json_encode($data);} ?>
2 回答
长风秋雁
TA贡献1757条经验 获得超7个赞
您应该删除分配给postMessage您的引号:
postMessage = {"Info": {"ID": 1, "IP": "192.168.1.1"}}
并将您的 php 代码更改为:
<?php
$data = file_get_contents("php://input");
header('Content-type:application/json;charset=utf-8');
echo json_encode($data);
?>
慕虎7371278
TA贡献1802条经验 获得超4个赞
检查您的 $_POST 结构。
<?php
if(!empty($_POST['Info'])){
$data = [ 'a', 'b', 'c' ];
echo json_encode($data);
}
else{
echo json_encode(ison_decode($_POST, TRUE));
}
- 2 回答
- 0 关注
- 160 浏览
添加回答
举报
0/150
提交
取消