带有json数据的Python HTTP请求是';t使用json数据获取php响应

带有json数据的Python HTTP请求是';t使用json数据获取php响应,php,python,http,httprequest,httpresponse,Php,Python,Http,Httprequest,Httpresponse,我正在尝试向服务器发送一个包含一些json数据的python http请求(稍后我将使用这个json数据)。服务器应该给出一个带有一些json数据的响应(使用PHP)。不幸的是,即使请求状态代码为200,也没有任何响应。请帮忙 #request.py import requests import urllib3 import json import os import time import sys #http Request url = 'http://localhost/response

我正在尝试向服务器发送一个包含一些json数据的python http请求(稍后我将使用这个json数据)。服务器应该给出一个带有一些json数据的响应(使用PHP)。不幸的是,即使请求状态代码为200,也没有任何响应。请帮忙

#request.py

import requests
import urllib3
import json
import os
import time
import sys

#http Request
url = '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

检查您的$\u帖子结构

<?php
if(!empty($_POST['Info'])){
   $data = [ 'a', 'b', 'c' ];  
   echo json_encode($data);
 }
 else{
     echo json_encode(ison_decode($_POST, TRUE));
 }

您应该在您的

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);
?>


postMessage={“Info”:{“ID”:1,“IP”:“192.168.1.1”}
@OlvinRoght仍然存在相同的问题,因为您试图找到不存在的post字段
json
$data=file\u get\u contents('php://input");
然后
echo json\u decode($data)@OlvinRoght我收到了同样的错误!我犯了一个错误,现在尝试不使用json编码,因为post数据是json,我们不需要json编码。但我意识到只有else语句正在执行!!!不知道为什么你没有或空的$u POST['json']。。。再次检查您的post数据结构。我对我的答案检查进行了更改,然后重试。若语句不起作用,则不行。echo$\u POST什么也不做。所以输出是相同的(JSON错误)。问题是空的$\u POST['json']。也尝试了你的新代码。给else一些数据,比如$dataElse=['a','b','c'];echo json_encode($dataElse);我做了些改变,现在就试试看。
<?php
$data = file_get_contents("php://input");
header('Content-type:application/json;charset=utf-8');
echo json_encode($data);
?>