栏目分类:
子分类:
返回
终身学习网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
终身学习网 > IT > 软件开发 > 游戏开发 > Cocos2d-x

开发技术-postman可以请求通,代码请求不通

Cocos2d-x 更新时间:发布时间: 百科书网 趣学号

使用 FeignClient 调用第三方的接口,在测试环境是没有问题的,但是调用对方的生产环境,出现了 400 错误

400 Bad request
Your browser sent an invalid request.

联系了对方,并没有找到问题在哪。然后使用 postman 请求对方生产环境时,是可以正常返回的。

就很奇怪,同一个 jar 只有请求地址不一样,不应该出现这个问题。

查了一些资料,400 错误基本上就是客户端的问题,可能是请求参数、请求方式不对。

此次 400 错误下面,还有

    at feign.FeignException.errorStatus(FeignException.java:62)
	at feign.codec.ErrorDecoder$Default.decode(ErrorDecoder.java:91)
	at feign.SynchronousMethodHandler.executeAndDecode(SynchronousMethodHandler.java:138)
	at feign.SynchronousMethodHandler.invoke(SynchronousMethodHandler.java:76)
	at feign.ReflectiveFeign$FeignInvocationHandler.invoke(ReflectiveFeign.java:103)
	at com.sun.proxy.$Proxy129.XX(Unknown Source)

接着比对 postman 和 代码的不同,发现,在 postman 新建 post 请求时,header 项是8项

组装好 post 请求后(入参为 json 串),header 变为了9项

 

header 里面多了个 Content-Type

 查看代码发现 FeignClient 里面定义的 headers 为

headers = "application/json;charset=UTF-8"

看来问题就是出现在这里了,没有写标头,参数根本就没有生效。将 headers 修改为

headers = "Content-Type=application/json;charset=UTF-8"

重新编译,再次发布,重新请求成功了。

另外测试了一下不加 headers 时,请求返回

{
    "msg": "Content type 'application/octet-stream' not supported",
    "code": 500
}

 猜测对方的测试环境没有对 header 进行检查

总结一下:

1、postman 可以,代码不行,那指定代码有问题

2、400 错误就是客户端的问题,可能是请求参数的格式、请求方法等不对引起的

又是收获的一天,古德拜

转载请注明:文章转载自 www.051e.com
本文地址:http://www.051e.com/it/1067126.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 ©2023-2025 051e.com

ICP备案号:京ICP备12030808号