📝记录一次API网关项目,修改自己写的Bug
- Bug描述:前端调用后端invoke接口,invoke根据接口id查询到模拟接口地址,然后用sdk请求网关,然后获取数据,但是拿不到数据
- 调试过程
网关设置了超时时间,直接就是超时
可以看到网关设置的路由都是正确的
并且数据库存储的地址也是正确的
但是打日志发现请求的uri是localhost:8080
然后我就用postman测试了一下
这就有点说不过去了吧,postman请求有响应,前端调用没有响应
而且postman请求的地址也是正确的,那这里就可以判断出问题出在了后端请求网关的地方了
再次调试发现,是我为了获取原有header信息传递给sdk写的一个方法, 把原来的host传给了sdk,然后sdk带着这个host去请求网关了,我真服我自己了哈哈哈哈哈
▼java复制代码public static Map<String, String> getAllHeaders(HttpServletRequest request) { Map<String, String> headersMap = new HashMap<>(); // 获取所有请求头的名称 Enumeration<String> headerNames = request.getHeaderNames(); // 遍历所有请求头 while (headerNames.hasMoreElements()) { String headerName = headerNames.nextElement(); // 获取请求头的值 String headerValue = request.getHeader(headerName); // 将请求头名称和值存入 Map headersMap.put(headerName, headerValue); } return headersMap; }
评论
问答助学
相关内容
0个评论
全部评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
