专业做房地产网站建设,wordpress使用cdn,深圳公关公司,网络营销的主要手段和策略问题描述
最近在和安卓开发对接接口#xff0c;遇到一个接口总是报405错误#xff0c;有对接经验的开发应该都知道是请求方式不对#xff0c;假如接口定义为POST请求的#xff0c;但是客户端却用GET请求#xff0c;这时候就会报这个错误。Android客户端那边使用xUtils框架…问题描述
最近在和安卓开发对接接口遇到一个接口总是报405错误有对接经验的开发应该都知道是请求方式不对假如接口定义为POST请求的但是客户端却用GET请求这时候就会报这个错误。Android客户端那边使用xUtils框架请求网络API接口也是多年的Android开发对接也是使用post请求过来的所以初步排查有可能是缓存或者是被代理服务器给转了为了确定请求的方式和其它业务参数需要去查看日志验证
项目环境
JDK1.8.0_111-b14Linux3.10.0-1062.el7.x86_64Apache 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 classNameorg.apache.catalina.valves.AccessLogValve directorylogsprefixlocalhost_access_log suffix.txtpattern%h %l %u %t quot;%rquot; %s %b /具体的参数意义可以参考tomcat官网的官网链接https://tomcat.apache.org/tomcat-8.0-doc/config/valve.html
翻译大致如 总结归纳
通过后端查看日志可以知道了Android客户端那边确实用GET请求调用了接口但是在Android代码里用xUtils是用post请求方式的这个问题排查了比较久后面后端清了缓存Android客户端也清缓存重新安装了后面调用都是POST请求所以是因为缓存导致暂时没定位到具体原因先做记录方便以后回顾