Linux Tomcat的服务器如何查看接口请求方式?

问题描述

最近在和安卓开发对接接口,遇到一个接口总是报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命令查看一下

shell 复制代码
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配置,如下

xml 复制代码
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log" suffix=".txt"
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />

具体的参数意义,可以参考tomcat官网的,官网链接:https://tomcat.apache.org/tomcat-8.0-doc/config/valve.html

翻译大致如:

总结归纳

通过后端查看日志,可以知道了Android客户端那边确实用GET请求调用了接口,但是在Android代码里用xUtils是用post请求方式的,这个问题排查了比较久,后面后端清了缓存,Android客户端也清缓存,重新安装了,后面调用都是POST请求,所以是因为缓存导致?暂时没定位到具体原因,先做记录,方便以后回顾

相关推荐
wdxylb1 小时前
云原生俱乐部-shell知识点归纳(1)
linux·云原生
飞雪20072 小时前
Alibaba Cloud Linux 3 在 Apple M 芯片 Mac 的 VMware Fusion 上部署的完整密码重置教程(二)
linux·macos·阿里云·vmware·虚拟机·aliyun·alibaba cloud
路溪非溪2 小时前
关于Linux内核中头文件问题相关总结
linux
海绵不是宝宝8173 小时前
连接远程服务器上的 jupyter notebook,解放本地电脑
服务器·jupyter·github
Lovyk5 小时前
Linux 正则表达式
linux·运维
Fireworkitte6 小时前
Ubuntu、CentOS、AlmaLinux 9.5的 rc.local实现 开机启动
linux·ubuntu·centos
sword devil9006 小时前
ubuntu常见问题汇总
linux·ubuntu
ac.char6 小时前
在CentOS系统中查询已删除但仍占用磁盘空间的文件
linux·运维·centos
繁星¹⁸⁹⁵8 小时前
通过update-alternatives可以实现cuda的多版本切换
服务器
淮北也生橘128 小时前
Linux的ALSA音频框架学习笔记
linux·笔记·学习