问题描述
最近在和安卓开发对接接口,遇到一个接口总是报405错误,有对接经验的开发应该都知道是请求方式不对,假如接口定义为post请求的,但是客户端却用get请求,这时候就会报这个错误。android客户端那边使用xutils框架请求网络api接口,也是多年的android开发,对接也是使用post请求过来的,所以初步排查有可能是缓存或者是被代理服务器给转了,为了确定请求的方式和其它业务参数,需要去查看日志验证
项目环境
- jdk1.8.0_111-b14
- linux3.10.0-1062.el7.x86_64
- apache tomcat/8.5.85
查看localhost_access_log日志文件
因为项目是部署在tomcat里的,所以可以通过查看tomcat的localhost_access_log.txt
日志文件,localhost_access_log
日志文件一般按照日期进行存储,我们只要查看对应的日志即可
通过linux命令查看一下
cat -n localhost_access_log.2024-03-26.txt |grep "/api"
日志打印如下,所以就可以知道请求接口对应的请求方式,返回的状态码等等信息都可以知道
1 192.10.168.55 - - [26/mar/2024:09:34:36 +0800] “post /api-server/rest/api/url_by_code http/1.1” 200 268
打印日志的格式可以在哪里配置?可以在tomcat的server.xml配置,如下
<valve classname="org.apache.catalina.valves.accesslogvalve" directory="logs" prefix="localhost_access_log" suffix=".txt" pattern="%h %l %u %t "%r" %s %b" />
具体的参数意义,可以参考tomcat官网的,官网链接:apache tomcat® - welcome!
翻译大致如:
总结归纳
通过后端查看日志,可以知道了android客户端那边确实用get请求调用了接口,但是在android代码里用xutils是用post请求方式的,这个问题排查了比较久,后面后端清了缓存,android客户端也清缓存,重新安装了,后面调用都是post请求,所以是因为缓存导致?暂时没定位到具体原因,先做记录,方便以后回顾
以上就是linux tomcat的服务器查看接口请求方式的方法的详细内容,更多关于linux tomcat查看接口请求方式的资料请关注代码网其它相关文章!
发表评论