Получение «404» при попытке отправить запрос в RESTful API - PullRequest
0 голосов
/ 14 июня 2019

Я пытаюсь создать приложение на Flask в Python, которое взаимодействует с RESTful API, использующим OAuth2.0, но у меня возникают проблемы с отправкой запросов. Я успешно получаю токен доступа с сервера, но когда я пытаюсь сделать запрос GET или POST, я всегда получаю 404 в качестве ответа. Я новичок в RESTful API, так что я не знаю, что я могу здесь делать неправильно или что означает 404 в этом контексте.

Вот файл .py, в котором я пытаюсь отправить запрос GET и POST в API. TokenHandler - это просто вспомогательный класс, который я создал, который отслеживает информацию, связанную с токеном, а строки print(response) всегда выводят «Response [404]».

from flask import Flask, render_template, request, redirect
from src.apitest import TokenHandler
import requests
from oauthlib.oauth2 import LegacyApplicationClient
from requests_oauthlib import OAuth2Session
import json

app = Flask(__name__)

token_handler = TokenHandler()


@app.route('/find_customer')
def find_customer():
    return render_template('customer_find_page.html')


@app.route('/find_customer', methods=['POST'])
def find_customer_get():
    customer_id = request.form['text0']
    oauth = OAuth2Session(client=LegacyApplicationClient(client_id=token_handler.CLIENT_ID))
    oauth.fetch_token(token_url=token_handler.TOKEN_ENDPOINT,
                      username=token_handler.USERNAME, password=token_handler.PASSWORD, client_id=token_handler.CLIENT_ID,
                      client_secret=token_handler.CLIENT_SECRET,
                      scope=token_handler.SCOPE)
    response = oauth.get("https://sedonacloudtest.com/api/customers/"+customer_id)
    print(response)
    return redirect('/find_customer')


@app.route('/add_customer')
def add_customer():
    return render_template('customer_add_page.html')


@app.route('/add_customer', methods=['POST'])
def add_customer_post():
    customer_id = request.form['text0']
    customer_name = request.form['text1']
    data = {"customer_id": customer_id, "customer_name": customer_name}
    oauth = OAuth2Session(client=LegacyApplicationClient(client_id=token_handler.CLIENT_ID))
    oauth.fetch_token(token_url=token_handler.TOKEN_ENDPOINT,
                      username=token_handler.USERNAME, password=token_handler.PASSWORD, client_id=token_handler.CLIENT_ID,
                      client_secret=token_handler.CLIENT_SECRET,
                      scope=token_handler.SCOPE)
    response = oauth.post("https://sedonacloudtest.com/api/customers", data=data)
    print(response)
    return redirect('/add_customer')


if __name__ == "__main__":
    app.run()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...