我在 Flask 和 FastAPI 上有类似的应用程序。当我使用 Flask 执行此 curl 请求时,没问题:
没有 TLS:
curl -X POST -H "Content-Type: application/json" -d '{"method": "account.auth"}' http://X.X.X.X:5050/
{"error":0,"result":{"token":"XXX"}}
Run Code Online (Sandbox Code Playgroud)
使用 TLS:
curl -X POST -H "Content-Type: application/json" -d '{"method": "account.auth"}' https://example.com:8443/api/
{"error":0,"result":{"token":"XXX"}}
Run Code Online (Sandbox Code Playgroud)
!!!但是使用 FastAPI 我得到了另一个结果:
没有 TLS:
curl -X POST -H "Content-Type: application/json" -d '{"method": "account.auth"}' http://X.X.X.X:5050/
{"error":0,"result":{"token":"XXX"}}
Run Code Online (Sandbox Code Playgroud)
使用 TLS:
curl -X POST -H "Content-Type: application/json" -d '{"method": "account.auth"}' https://example.com:8443/api/
Unsupported upgrade request.
Run Code Online (Sandbox Code Playgroud)
如何解决“不支持的升级请求”问题?还有,这是什么?Flask 正常使用它。
同样的问题通常似乎是由不完整的uvicorn安装引起的,但通常与 websockets 相关。
此问题的解决方案可能是uvicorn使用推荐的(由 FastAPI 提供的)附加功能重新安装:
python3 -m pip uninstall uvicorn
python3 -m pip install uvicorn[standard]
Run Code Online (Sandbox Code Playgroud)
小智 6
我在使用java访问api时遇到了这个问题。解决方案是将HTTP请求设置为1.1
var httpRequest = HttpRequest.newBuilder()
.uri(URI.create("http://127.0.0.1:8000/jobs"))
.version(HttpClient.Version.HTTP_1_1)
.GET()
.build();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1253 次 |
| 最近记录: |