接口调用处理,http请求405错误

接口请求错误调查

接口现象调查

每个接口调用都有自己环境,先排查原因

调查

  1. 问题用户反馈,上传文档非常缓慢
  2. 查看实时日志如下:
    在这里插入图片描述
    分析日志,发现一个外调接口连接超时。
  3. 接口 一直请求超时,:http://rbs-prd.cignacmb.com:4444/anno/transferClose
  4. 网络权限,http://rbs-prd.cignacmb.com:4444是否开通有申请过网络权限,这个原有常用地址,有权限。
  5. curl命令访问查看,
    在这里插入图片描述
    405方法不允许,显示Get请求不允许
  6. 排查接口对接,是否不是post , 对接的是POST.
  7. 排查rbs-prd.cignacmb.com:4444负载到159和160正常吗?
  8. 负载正常的,下面截图验证的端口都是通的,下面的都有返回码:405,请确认下请求http://rbs-prd.cignacmb.com:4444/anno/transferClose 是正确的吗?
  9. 下面截图的405没关系,这个是直接使用url访问是get请求,我们是post请求,这个没关系
    贴出代码请求如下:
public static <T> ResultMsg toRbs(String url, Map<String,String> param){ 
    ResultMsg resultMsg = new ResultMsg();
    DateTime currTime = new DateTime(new Date(),16);
    CloseableHttpClient client = getHttpClient();
        HttpPost post = new HttpPost(url);
        String req = JSON.toJSONString(param);
        logger.info(currTime+":"+url+":发送请求:"+req);
        StringEntity entity = new StringEntity(req, Charset.forName("UTF-8"));
        entity.setContentType("application/json");
        post.setEntity(entity);
        CloseableHttpResponse response = null;
        String rstCode,rstMsg;
        try {
            response = client.execute(post);
            if (response != null) {
                int statusCode = response.getStatusLine().getStatusCode();
                if (statusCode != HttpStatus.SC_OK) {
                    resultMsg.setFlag(false);
                    resultMsg.setMsg("连接失败,错误代码为:" + String.valueOf(statusCode));
                    return resultMsg;
                }
                HttpEntity entity1 = response.getEntity();
                String result = org.apache.http.util.EntityUtils.toString(entity1, "UTF-8");
                logger.info("{接口返回数据}" + result);
                com.alibaba.fastjson.JSONObject json= com.alibaba.fastjson.JSONObject.parseObject(result);
                rstCode = json.getString("code");rstMsg = json.getString("msg");
                if ("200".equals(rstCode)) {
                resultMsg.setFlag(true);
                    resultMsg.setMsg(rstMsg);
                }else {
                resultMsg.setFlag(false);
                    resultMsg.setMsg("接口异常:"+rstMsg);
                }
            } else {
                resultMsg.setFlag(false);
                resultMsg.setMsg("连接接口失败");
            }
        } catch (Exception e) {
            resultMsg.setFlag(false);
            resultMsg.setMsg(e.getMessage());
            logger.error(e);
        } finally {
            try {
                post.releaseConnection();
            } catch (Exception e) {
            logger.error(e);
            }
        }
        return resultMsg;
    }

HttpPost封装的请求,但是这个是否会变成GET请求?

  1. 问题还没有解决
    浏览器访问
This application has no explicit mapping for /error, so you are seeing this as a fallback.

Wed Nov 18 16:43:19 CST 2020
There was an unexpected error (type=Method Not Allowed, status=405).
Request method 'GET' not supported

请帮忙查询在10.142.114.66:8080/platform/login/login.do是否开启了rbs-prd.cignacmb.com:4444,谢谢。,还是服务器访问不通。
解决:
问题原因再追溯
A (ip:端口)→ prd.cignacmb.com:4444 OK(已经开通过,两台机器是通的)
B (ip:端口)→ prd.cignacmb.com:4444 OK
C(10.142.114.66:8080,报表服务器)→ prd.cignacmb.com:4444 NO
所以发单请求开通网络权限。
新客服系统访问续期系统接口权限×→新客服系统访问续期系统网络权限,注接口是没权限一说
13 开通网络
内部机器访问的都是隔离的,只要没申请过,那就是不通的。
生产环境:新客服调用续期接口地址, 接受需求返回数据,关闭CSS需求,推送数据给RBS。
请协助开通网络权限,谢谢。
在这里插入图片描述
14 查看是否开通
登录10.142.103.107 发起连接 telnet ip port 。Connected to xxx.com
在这里插入图片描述
15 服务开通
上诉问题得到解决,但是还有个67的报表服务遗漏,报告-沟通-相谈,添加即可。

二 新增接口调用,数据没有推送过去
E化平台,上叙中64,65没开通网络。但是已经开通,现在还是没有推送数据,看接口调用是通的
继续排查。
结果查询:是对方验证没有验证对的地方,问题解决

问题: 什么是405错误? 如何解决HTTP请求405错误? 回答: 405错误通常伴随着POST请求出现。一种常见的情况是,当使用POST请求时,后台接口只支持GET请求,导致405错误。\[1\]另一种情况是,当使用POST请求时,后台接口没有正确映射到对应的处理方法,导致405错误。\[2\] 要解决HTTP请求405错误,可以尝试以下几种方法: 1. 确保后台接口正确处理POST请求,并且有对应的处理方法。 2. 检查前台表单提交的请求方式是否正确,确保使用POST请求。 3. 检查后台接口的映射配置,确保正确映射到对应的处理方法。 4. 检查网络连接是否正常,确保服务器能够正常访问。 5. 如果是跨域请求,需要确保跨域配置正确,并且服务器端已经开启了对应的跨域访问权限。 如果以上方法都没有解决问题,可以进一步检查服务器的网络权限设置,确保网络权限已经正确开通。\[3\]另外,可以通过telnet命令检查服务器的连接情况,确保能够正常连接到目标服务器。\[3\] 总结起来,解决HTTP请求405错误的关键是确保后台接口正确处理POST请求,并且网络连接和权限设置都正常。 #### 引用[.reference_title] - *1* [http请求 405错误](https://blog.csdn.net/java20xin/article/details/123555834)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [接口调用处理http请求405错误](https://blog.csdn.net/xiaogangpi/article/details/109770312)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值