【发布时间】:2020-09-03 21:00:57
【问题描述】:
我将编写一个 python 脚本来监听一个自定义工具的 webhook,该工具将在我可以指定的端口上发送 json(它们也可能支持其他格式)。
如何编写类似于 linux 命令:“nc -l 9000”的内容来转储我在该端口(标题和正文)上获得的输出?
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
async def root():
print() <- how to get the data here?
return {"message": "ok"}
我想在终端打印内容,然后我可以很容易地看到我会得到什么并采取行动。如果甚至需要,我不确定我应该向他们重播什么(需要检查一下,他们还没有完成他们的工作)。
【问题讨论】:
-
如果您的意思是如何请求 HTTP(S) 页面,那么您可能正在寻找 requests.readthedocs.io/en/master 或 github.com/encode/httpx
-
不,我想转储进入港口的东西。 Web 浏览器只是一个例子。我希望如何能够转储其他协议的其他请求。
-
不是 HTTP(S)?我认为这是不可能的,因为 uvicorn 是一个 HTTP 服务器。可能它前面的一些代理可以完成这种工作。否则我不知道如何提供帮助
-
好的,但是可以转储原始 http(s) 请求吗?
-
您可以使用中间件处理请求对象,请参阅 fastapi.tiangolo.com/tutorial/middleware fastapi.tiangolo.com/advanced/middleware 和 starlette.io/middleware 。但是,使用 python 很难获得原始请求。也许有一个库可以获取请求对象并对其进行转换,但我从未听说过它
标签: python-3.x http-headers netcat fastapi