问题是这样的:
客户在linux centOS的上搭建我们公司的一个项目,web服务器使用的是tomcat,我们的系统是c/s架构的一个系统,在客户端打开,点击登录的时候,直接弹出“404bad request”。
我在客户现场后,远程调试启动tomcat,然后在myeclipse上远程调试。发现,客户端上有网络设置,我点击网络设置,能进到后台。但是我点登录的时候,就直接跳出“404 bad request”,也就是请求根本没到后台。
然后我让开发部改了客户端软件,把请求的地址弹出来,弹出的请求地址如下:
http://*.*.*.*:8080/????//usercheck?cmd=log_on&set=001&user=admin&pass=7XEFXcqUydY=&system=zpp-PC|10.100.8.99|68:17:29:48:63:EA
其中的星号和问号是我手动马赛克掉的,后面的求情参数里有个system,参数是请求的客户端的“主机名”、“IP地址”,“mac地址”,用“|”分割。我把这个请求地址直接丢到浏览器url窗口,显示无法访问。因为客户这边出现过我们公司另外一个系统请求参数包含“\”,导致无法请求的情况,所以尝试删掉了“丨”后面的内容,保留一个参数,发现不管是保留主机名还是ip地址或者mac地址都是能接受到服务端的反馈的。
改掉后的地址是这样:
http://*.*.*.*:8080/????//usercheck?cmd=log_on&set=001&user=admin&pass=7XEFXcqUydY=&system=zpp-PC
所以我想是不是因为“丨”是linux的管道符,所以系统将“丨”做特殊处理了,导致客户端的请求无法正确发送到服务端。
所以请教一下各位路过的大神们,帮忙分析一下原因。
对url进行编码下试试(猜想),URLEncoding编码下
| 用url encode做一下处理再发送请求
那个????后面怎么有两个//?