您好,欢迎来到尔游网。
搜索
您的当前位置:首页Http restTemplate请求400 Bad Request

Http restTemplate请求400 Bad Request

来源:尔游网

       近期再使用一个http调用时,写完服务端代码使用postman测试后没有问题,发布客户端调用时一直报错,400 bad request,可以知道是客户端有问题。但是通过postman可以使用,唯一区别是程序是把对象转换成了json串使用restTemplate调用的,postman通过拼接的json串,传递的对象内包含了日期字段,感觉这个字段可能会有问题,在本地写了一个test类,再屏蔽掉日期字段后发现可以正常调用服务,找到问题所在,就是如何解决问题了。

      服务端是用@RequestBody接受的参数,应该是日期参数在反序列化的时候出错了,网上给出的答案推荐是传递的对象最好都是String类型的,不会出现类型匹配错误问题,但是涉及数据类型转变,代码中需要转换比较麻烦,继续查询资料,发现了这个注解:

@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")

      @JsonFormat是fasterxml里的注解,使用需要引入依赖,测试后可以很完美解决问题,如果不加timezone会出现八小时时差问题。虽然传递对象在设置日期参数时可能已经格式化了相应格式,但是在转换json串时还是会有问题,但是请求服务不通。具体@JsonFormat注解的原理可参考:

      网上当然还有很多原因导致400 bad request,比如get/post方法使用不当,contentType设置不一致,请求数据太大,请求数据中包含特殊字符等,可以在遇到问题时手动断点跟入确认相应问题。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- axer.cn 版权所有 湘ICP备2023022495号-12

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务