Java 检查 GET 请求信息

Posted

技术标签:

【中文标题】Java 检查 GET 请求信息【英文标题】:Java check GET request info 【发布时间】:2018-08-27 05:06:49 【问题描述】:

我正在使用 Facebook Messenger 应用程序(聊天机器人),我想看看我从它收到了什么 GET 请求。我正在使用 Spring Framework 启动 http 服务器和 ngrok 以使其对 facebook 可见。

Facebook 向我发送 webhook,我收到了它们,但我不明白如何从这个请求中提取数据。这是我尝试 HttpRequest 接收 GET 请求时得到的结果。 ngrok screenshot(错误 500)。 当我尝试不使用 HttpRequest 时,我得到了响应 200(好的)。

我需要在我的 find 方法的参数中添加什么来查看 GET 请求数据?

我的代码:

@RestController
public class botAnswer 

    @RequestMapping(method= RequestMethod.GET)
    public String find(HttpRequest request) 
        System.out.println(request.getURI());
        String aaa = "222";

        return aaa;
    

【问题讨论】:

【参考方案1】:

我猜HttpRequest 在这里帮不了你。为简单起见,只需将HttpRequest 更改为HttpServletRequest。您可以使用request.getParameter("...") 从中访问所有查询字符串参数。像下面这样的东西应该可以工作:

@RequestMapping(value = "/", method = RequestMethod.GET)
public String handleMyGetRequest(HttpServletRequest request) 
    // Reading the value of one specific parameter ...
    String value = request.getParameter("myParam");

    // or all parameters 
    Map<String, String[]> params = request.getParameterMap();

    ...

This blog post 展示了如何使用@RequestParam 注释来替代直接从HttpServletRequest 读取参数。

【讨论】:

以上是关于Java 检查 GET 请求信息的主要内容,如果未能解决你的问题,请参考以下文章

检查待处理的 AJAX 请求或 HTTP GET/POST 请求

Postman—添加断言和检查点

如何检查请求是不是是 Symfony2 或 Symfony3 中的 POST 或 GET 请求

尝试检查GET请求发送的数组的输出

requests库的get请求

没有为请求类型“GET”找到 HTTP 处理程序