Windows 11下FastAPI服务请求端口异常问题求助
Windows 11下FastAPI服务请求端口异常问题求助
嗨,先别慌,我来帮你理清这两个问题——首先你看到的端口变化其实是正常现象,真正需要解决的是404错误:
关于服务器日志里的随机端口(比如127.0.0.1:50340)
这完全是TCP通信的正常机制,不是故障!你的FastAPI服务器确实在监听127.0.0.1:8000,但当客户端发起请求时,客户端会在本地随机分配一个临时端口(也就是日志里的50340这类数字)来和服务器的8000端口建立连接。服务器日志里记录的是客户端的源端口,而非服务器的监听端口,所以每次请求这个临时端口都会变化,你用Test-NetConnection测试8000端口能通,就说明服务器监听是正常的,这部分不用纠结。真正的问题:404 Not Found错误
从客户端和服务器的日志来看,你请求的路径是/api/query,但服务器找不到这个接口,所以返回404。你可以从这几个方面排查:- 检查FastAPI代码里的路由定义,确认是否存在匹配的POST接口,比如有没有类似这样的代码:
from fastapi import FastAPI from pydantic import BaseModel from typing import List app = FastAPI() class QueryRequest(BaseModel): request_type: str query_items: List[str] number_of_predictions: int include_score: bool @app.post("/api/query") async def process_query(request: QueryRequest): # 你的业务逻辑代码 return {"status": "success"}- 访问FastAPI自带的文档页面
http://127.0.0.1:8000/docs,这里会列出所有已定义的接口,如果找不到/api/query的POST接口,说明路由要么没写,要么路径拼写错误(比如大小写、多/少斜杠)。 - 确认服务是否加载了最新代码:虽然日志显示用了
StatReload自动重载,但有时候可能重载不生效,手动重启一下FastAPI服务试试。
备注:内容来源于stack exchange,提问作者Henry Thornton
相关产品推荐
相关产品推荐

