Flask API не может получить данные от PHP - PullRequest
0 голосов
/ 01 марта 2020

Я пытаюсь запустить flask API в указанном c номере порта, как показано ниже,

from flask import Flask, request
from pymongo import MongoClient
import json


app = Flask(__name__)

@app.route("/")
def hello():
    return "Befriend Registration"
@app.route("/reg", methods=["POST"])
def pushDB():
    somedata= request.get_json()
    return json.dumps({"status":"OK", "Data": somedata})

if __name__ == '__main__':
    app.run(port= 34000, debug=True)

И пытаюсь отправить данные, используя PHP

<?php
    $url = 'http://127.0.0.1:34000/reg';
    $data = array("collection" => "RapidAPI");
    $curl = curl_init($url);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($curl, CURLOPT_POST, true);
    curl_setopt($curl, CURLOPT_POSTFIELDS,  json_encode($data));
    $response = curl_exec($curl);
    echo $response;
    curl_close($curl);
?>

Но каждый раз, когда API получает null Тело ответа выглядит примерно так:

{
status: "OK",
Data: null
}

1 Ответ

1 голос
/ 01 марта 2020

Flask необходимо знать, что он получает "json". В вашем скрипте PHP необходимо добавить дополнительный заголовок «Content-Type».

<?php
$url = 'http://127.0.0.1:34000/reg';
$data = array("collection" => "RapidAPI");
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS,  json_encode($data));
curl_setopt($curl, CURLOPT_HTTPHEADER, [
   'Content-Type: application/json'
]);
$response = curl_exec($curl);
echo $response;
curl_close($curl);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...