我们希望通过检查是否可以通过shell脚本登录应用程序来定期监控GWT Web应用程序。
有没有办法使用wget将带有JSON数据的http post请求发送到GWT servlet?
答案 0 :(得分:2)
我曾尝试使用Apache JMeter调用GWT webapp(所以我认为wget能够做同样的事情 EDIT。 curl而不是wget,感谢@Chris Lercher,看看他的评论) 。假设您的应用程序使用GWT-RPC来调用服务器端,则不能使用JSON。首先,您需要将JSON转换为GWT-RPC proprietary format。最简单的方法是从实际应用程序中捕获必要的请求。您可以使用Chrome开发者工具捕获它(打开您的应用程序,打开保留开发人员工具的网络选项卡上的登录,然后强制您的应用程序触发请求并分析请求有效负载)。它可能看起来像这样:
7|0|4|http://yourapp/|024F843AF926C69027FD016F55BAC7DF|com.mycompany.RPCProductService|getProducts|1|2|3|4|0|
然后您可以尝试拨打您的应用。
在部署新版本的应用程序之后,此请求将失败(即使相应的端点保持不变)。每个请求中都包含某种安全签名,并且会自动更改。
希望这有帮助。
答案 1 :(得分:1)
使用提示使用curl和maksym描述的方式对我有用:
curl -i -X POST <REQUEST URL> -H "<ALL HEADERS FROM CATCHED REQUEST>" -d @<FILENAME>
其中FILENAME是包含来自捕获请求的发布数据的文件的名称