接到需求远程调用其他接口查询数据,在本地测试没有问题,但在推送到服务以后,接口一直报错:

然后远程调试提示405,405一般是请求方式的问题,比如要求get请求,发送的是post请求等,打印执行日志也是这个问题:

解决方式:将域名换成IP地址,原因是对方服务器域名解析的时候不一致,可能有多个域名,但IP只有一个
问题排查流程
- 先打印日志查看是否报错以及报错原因
- 远程调试打断点分析
- 服务器ping对方接口
- 使用 Linux 直接发送请求调试
- 找运维姐姐🙄
Linux发送请求格式:
一、get请求:
1、使用curl命令:
curl “http://www.baidu.com” 如果这里的URL指向的是一个文件或者一幅图都可以直接下载到本地
curl -i “http://www.baidu.com” 显示全部信息
curl -l “http://www.baidu.com” 只显示头部信息
curl -v “http://www.baidu.com” 显示get请求全过程解析
2、使用wget命令:
wget “http://www.baidu.com”也可以
二、post请求
1、使用curl命令(通过-d参数,把访问参数放在里面):
curl -d “param1=value1¶m2=value2” “http://www.baidu.com”
2、使用wget命令:(--post-data参数来实现)
wget --post-data ‘user=foo&password=bar’ http://www.baidu.com
三、curl (可直接发送格式化请求例如json)
示例:目标url:http://fsc-inner.99bill.com/acs/deposit/{srcRef}
命令:curl -H "Content-type: application/json" -X POST -d '{/"srcRef":"1002"}'http://fsc-inner.99bill.com/acs/deposit/1002