带有 json 数据的 Python HTTP 请求没有得到带有 json 数据的 php 响应

我正在尝试将带有一些 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



<?php


if(!empty($_POST['json'])){

  $data = [ 'a', 'b', 'c' ];  

  header('Content-type:application/json;charset=utf-8');

  echo json_encode($data);


}

 ?>


天涯尽头无女友
浏览 164回答 2
2回答

长风秋雁

您应该删除分配给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

检查您的 $_POST 结构。<?phpif(!empty($_POST['Info'])){&nbsp; &nbsp;$data = [ 'a', 'b', 'c' ];&nbsp;&nbsp;&nbsp; &nbsp;echo json_encode($data);&nbsp;}&nbsp;else{&nbsp; &nbsp; &nbsp;echo json_encode(ison_decode($_POST, TRUE));&nbsp;}
打开App,查看更多内容
随时随地看视频慕课网APP