软件开发定制开发技术-postman可以请求通,代码请求不通

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

  1. <html><body><h1>400 Bad request</h1>
  2. Your browser sent an invalid request.
  3. </body></html>

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

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

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

此次 400 错误下面,还有

  1. at feign.FeignException.errorStatus(FeignException.java:62)
  2. at feign.codec.ErrorDecoder$Default.decode(ErrorDecoder.java:91)
  3. at feign.SynchronousMethodHandler.executeAndDecode(SynchronousMethodHandler.java:138)
  4. at feign.SynchronousMethodHandler.invoke(SynchronousMethodHandler.java:76)
  5. at feign.ReflectiveFeign$FeignInvocationHandler.invoke(ReflectiveFeign.java:103)
  6. 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 时,请求返回

  1. {
  2. "msg": "Content type 'application/octet-stream' not supported",
  3. "code": 500
  4. }

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

总结一下:

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

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

又是收获的一天,古德拜

网站建设定制开发 软件系统开发定制 定制软件开发 软件开发定制 定制app开发 app开发定制 app开发定制公司 电商商城定制开发 定制小程序开发 定制开发小程序 客户管理系统开发定制 定制网站 定制开发 crm开发定制 开发公司 小程序开发定制 定制软件 收款定制开发 企业网站定制开发 定制化开发 android系统定制开发 定制小程序开发费用 定制设计 专注app软件定制开发 软件开发定制定制 知名网站建设定制 软件定制开发供应商 应用系统定制开发 软件系统定制开发 企业管理系统定制开发 系统定制开发