Проблемы при отправке запросов в колбу - PullRequest
0 голосов
/ 25 мая 2019

У меня есть следующий флак api, который просто возвращает эхо своего ввода:

from flask import Flask
from flask_restful import Resource, Api

app = Flask(__name__)
api = Api(app)

class query(Resource):

    def get(self, a_string):
        return{
        'original': a_string,
        'echo': a_string
        }

api.add_resource(query,'/echo/<a_string>')

if __name__ == '__main__':
    app.run()

Затем, когда я пытаюсь использовать запросы python для выполнения запросов к моему API:

import json
def query(text):    
    payload = {'echo': str(text)}
    headers = {'content-type': 'application/x-www-form-urlencoded'}
    r = requests.request("POST", 'http://127.0.0.1:5000', data=payload, headers=headers)
    print(r)
    #data = json.loads(r.text)
    #return data

query('hi')

Я продолжаю получать:

<Response [404]>

Есть идеи, как решить эту проблему?Интересно, когда я захожу в свой браузер и делаю:

http://127.0.0.1:5000/echo/hi

, я получаю:

{"original": "hi", "echo": "hi"}

1 Ответ

1 голос
/ 25 мая 2019

Но отправка POST в / с полезной нагрузкой {"echo": что угодно} совсем не то же самое, что отправка GET в / echo / что угодно. Ваш API ожидает последнего.

def query(text):
    r = requests.get("http://127.0.0.1:5000/echo/{}".format(text))

Или измените ваш API так, чтобы он ожидал, что:

class query(Resource):

    def post(self):
        a_string = request.form["echo"]
        return {
            'original': a_string,
            'echo': a_string
        }

api.add_resource(query, '/')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...