HTTP Error 405 Method Not Allowed

Я создаю сервер для получения уведомлений о новых видео с помощью Youtube PubSubHubBub. Я использую fast_api в связке с uvicorn (и ngrok). Когда я получаю запрос /GET, все работает нормально, но когда дело доходит до запроса /POST, получается ошибка 405 Method not allowed. Вот мой код:

import uvicorn
from fastapi import FastAPI, Request, Response
from fastapi.middleware.cors import CORSMiddleware
from urllib.parse import parse_qs
import os
import asyncio
import ngrok
ngrok.set_auth_token('my_ngrok_token')

app = FastAPI()
app.add_middleware(
    CORSMiddleware,
    allow_origins=['*'],
    allow_credentials=True,
    allow_methods=['*'],
    allow_headers=['*'],
)

@app.get("/")
async def read_root():
    return 'pong'

@app.get("/feed")
async def feed(request: Request):
    if request.method == 'POST':
        print(request.body())
        print(data)
        return Response(status_code=204, content='', media_type='text/plain')
    q_params = parse_qs(request.url.query, keep_blank_values=True)
    d = dict((k, v if len(v) > 1 else v[0])
             for k, v in q_params.items())
    if 'hub.challenge' in d.keys():
        return Response(content=d['hub.challenge'], status_code=200, media_type='text/plain')


if os.name == "nt":  # windows

    async def setup():
        listener = await ngrok.default()
        listener.forward('localhost:5000')
        print(listener.url() + '/feed')

    asyncio.run(setup())
    uvicorn.run(app=app, port=5000)
    exit()

Ответы (0 шт):