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

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

解决方式:将域名换成IP地址,原因是对方服务器域名解析的时候不一致,可能有多个域名,但IP只有一个

问题排查流程

  1. 先打印日志查看是否报错以及报错原因
  2. 远程调试打断点分析
  3. 服务器ping对方接口
  4. 使用 Linux 直接发送请求调试
  5. 找运维姐姐🙄
    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