📝记录一次API网关项目,修改自己写的Bug

  1. Bug描述:前端调用后端invoke接口,invoke根据接口id查询到模拟接口地址,然后用sdk请求网关,然后获取数据,但是拿不到数据
  2. 调试过程
b1.png 网关设置了超时时间,直接就是超时 b3.png 可以看到网关设置的路由都是正确的 b2.png 并且数据库存储的地址也是正确的 b4.png 但是打日志发现请求的uri是localhost:8080 然后我就用postman测试了一下 p.png 这就有点说不过去了吧,postman请求有响应,前端调用没有响应 b5.png 而且postman请求的地址也是正确的,那这里就可以判断出问题出在了后端请求网关的地方了 b6.png 再次调试发现,是我为了获取原有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个评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
下载 APP