我想使用POST方法使用Spring Rest web服务。我无法在客户端(网站)访问POJO文件,因此必须在客户端使用JSON并在Web服务中使用POJO。下面是我的代码:获取400错误的请求Spring RestTemplate POST

REST控制器

@RequestMapping(value="/updateAdmin", method=RequestMethod.POST, consumes="application/json", headers="Accept=application/json")

public ResponseEntity updateAdmin(@RequestBody Ss_admin admin) {

try {

ss_admin_dao.updateAdmin(admin);

} catch(Exception ex) {

ex.printStackTrace();

}

return new ResponseEntity(HttpStatus.CREATED);

}

POJO

package model;

import java.io.Serializable;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;

import com.fasterxml.jackson.annotation.JsonProperty;

@JsonIgnoreProperties(ignoreUnknown = true)

public class Ss_admin implements Serializable {

@JsonProperty("a_id")

private long a_id;

@JsonProperty("a_username")

private String a_username;

@JsonProperty("a_password")

private String a_password;

public Ss_admin() {}

public long getA_id() {

return a_id;

}

public void setA_id(long a_id) {

this.a_id = a_id;

}

public String getA_username() {

return a_username;

}

public void setA_username(String a_username) {

this.a_username = a_username;

}

public String getA_password() {

return a_password;

}

public void setA_password(String a_password) {

this.a_password = a_password;

}

}

REST客户

try {

RestTemplate restTemplate = new RestTemplate();

List> list = new ArrayList>();

list.add(new MappingJackson2HttpMessageConverter());

restTemplate.setMessageConverters(list);

//restTemplate.setRequestFactory(new HttpComponentsClientHttpRequestFactory(HttpClientBuilder.create().build()));

String url = "http://localhost:8181/xyz/updateAdmin";

JSONArray json = new JSONArray();

JSONObject obj = new JSONObject();

obj.put("a_username", "testabcd");

obj.put("a_id", 1);

obj.put("a_password", "N/A");

json.put(obj);

HttpHeaders headers = new HttpHeaders();

//headers.setContentType(MediaType.APPLICATION_JSON);

//headers.setAccept(MediaType.APPLICATION_JSON);

headers.add("Accept", MediaType.APPLICATION_JSON.toString());

headers.add("Content-Type", MediaType.APPLICATION_JSON.toString());

//headers.setAccept(Arrays.asList(MediaType.APPLICATION_JSON));

HttpEntity entity = new HttpEntity(obj.toString(), headers);

restTemplate.exchange(url, HttpMethod.POST, entity, String.class);

//restTemplate.postForEntity(url, entity, String.class);

} catch(Exception ex) {

ex.printStackTrace();

}

正如你在评论中看到的那样,我尝试了很多选择但没有成功。

堆栈跟踪

Aug 04, 2017 6:58:12 PM org.springframework.web.client.RestTemplate handleResponseError

WARNING: POST request for "http://localhost:8181/xyz/updateAdmin" resulted in 400 (Bad Request); invoking error handler

org.springframework.web.client.HttpClientErrorException: 400 Bad Request

at org.springframework.web.client.DefaultResponseErrorHandler.handleError(DefaultResponseErrorHandler.java:91)

at org.springframework.web.client.RestTemplate.handleResponseError(RestTemplate.java:576)

at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:532)

at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:489)

at org.springframework.web.client.RestTemplate.exchange(RestTemplate.java:431)

at webcontroller.TestController.update(TestController.java:77)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:498)

at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:214)

at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:132)

at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104)

at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:748)

at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:689)

at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:83)

at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:945)

at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:876)

at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:931)

at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:822)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:687)

at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:807)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)

at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)

at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)

at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:528)

at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1099)

at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:670)

at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1520)

at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1476)

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)

at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)

at java.lang.Thread.run(Thread.java:745)

编辑 我曾测试REST Web服务http://localhost:8181/xyz/updateAdmin 使用邮差,并且它成功执行,但不与RestTemplate工作。

问题解决 请参阅下面的答案。

+0

我也有使用RestTemplate的方法postForObject错误请求400。原因是在我的pojo,我没有使用@JsonProperty来注释每个字段。基本上,在修复之前,Pojo的内容没有被发送到端点。如果您在邮递员中删除了json请求的主体,则验证了这一点。发送一个空的身体也给你一个400.这是线索,然后在pojo狭窄。 –

java 获取400的错误信息_获取400错误的请求Spring RestTemplate POST相关推荐

  1. js解密之QQ的bkn值,获取QQ群成员信息,获取QQ好友列表信息

    js解密之QQ的bkn值,获取QQ群成员信息,获取QQ好友列表信息   Lan   2020-05-31 12:13   126 人阅读  0 条评论 QQ群网站:https://qun.qq.com ...

  2. 服务器 1 500错误信息,什么是500错误

    什么是500错误[编辑] 概述 500错误页面,则说明了内部服务器无法解析ASP代码.但有时候它能打开静态页面问题.如果静态页面没有问题,则是具体问题具体分析. 一.查看错误信息 1."服务 ...

  3. Foxmail: 错误信息::ssl连接错误, errorCode: 5,各种解决方案的大杂烩。

    Foxmail: 错误信息::ssl连接错误, errorCode: 5,各种解决方案的大杂烩. 参考文章: (1)Foxmail: 错误信息::ssl连接错误, errorCode: 5,各种解决方 ...

  4. 错误ID:10005,错误信息:DCOM 遇到错误“无法启动服务,原因可能是它被禁用或与它相关联的设备没有启动。 ”,试图以参数“”启动服务 SENS 以运行服务器:...

    Windows2000+SP4环境,系统做过优化,有时候发现系统在无操作的时候磁盘在读盘.于是查询系统日志,有以下信息 1.错误ID:10005,错误信息:DCOM 遇到错误"无法启动服务, ...

  5. 传感器怎么获取障碍物的宽度信息_超声波避障传感器助力AGV小车轻松实现自动规避障碍物...

    原标题:超声波避障传感器助力AGV小车轻松实现自动规避障碍物 近年来,无人化这个概念逐渐被运用到了社会中的各个行业,比如无人零售.无人驾驶.无人工厂:而跟物流有关的就有无人分拣机器人.无人驾驶卡车和无 ...

  6. java获取radio选中的值_获取radio值

    使用jquery获取radio的值  使用jquery获取radio的值,最重要的是掌握jquery选择器的使用,在一个表单中我们通常是要获取被选中的那个radio项的值,所以要加checked来 ...

  7. 获取小程序用户信息+java_java获取微信小程序用户信息

    第一步:获取openid.session_key等信息. /** * 获取微信小程序的用户openid和session_key/unionid * 返回格式:{"session_key&qu ...

  8. 获取android设备唯一编号_获取android设备的唯一ID

    在Android开发者官方blog上已经有一篇文章对此做了总结(参考链接1), 这里结合自已查询的资料再总结一下, 并给出最终符合要求的解决方案. 1. ANDROID_ID, Secure.ANDR ...

  9. c 连接mysql错误信息_使用C语言访问MySQL数据 —— 连接和错误处理

    2011-05-09 wcdj 可以通过许多不同的编程语言来访问MySQL,例如,C,C++,Java,Perl,Python,Tcl,PHP等.本文主要总结使用C语言接口如何访问MySQL数据. ( ...

最新文章

  1. 《CLR via C#》读书笔记 之 类型和成员基础
  2. Boost::context模块callcc的stack测试程序
  3. 数据仓库中捕获变化数据(CDC,Changed Data Capture)的四种手法
  4. 标准C语言库 Glibc 2.15
  5. SLS控制台内嵌操作指南
  6. 字体文件夹_下载了各种五花八门的CAD字体,为什么打开图纸还是找不到字体?...
  7. 新一代华为折叠屏手机MateX2,你会考虑入手吗?
  8. 分享112个留言聊天PHP源码,总有一款适合你
  9. Linux(ubuntu 18)上编译 及修改 INAV 飞控代码(混控功能)
  10. 工作总结—HMC5883L应用的一些说明
  11. 阅读Revisiting Superpixels for Active Learning in Semantic Segmentation With Realistic Annotation Cost
  12. 网络OSI七层及各层作用
  13. 如何删除我们的应用在 AppStore 中的负面评论
  14. 电商直播风暴来了,AI虚拟偶像彻底革命李佳琦、薇娅?
  15. @Deprecated的使用
  16. 解密WEP和WPA-PSK/WPA-PSK加密的数据包
  17. 计算机英语拆分,如何使用英语单词拆分法
  18. 计算机英语情景对话二人组,英语情景对话要求两人的对话 时间5分钟左右 内容是在校园两个好朋友谈论...
  19. 经典激光雷达SLAM系统:LOAM-Livox
  20. 9个offer,12家公司

热门文章

  1. 【原创】推荐广告入门:DeepCTR-Torch,基于深度学习的CTR预测算法库
  2. 眼界大开 声临其境丨胡宜峰:视频深度伪造检测技术在内容安全领域的探索与实践
  3. 互联网1分钟 |1229
  4. 构造代码块会想你所想
  5. zabbix在configure时候遇到的问题(Ubuntu\debian)
  6. error nr.1045 access denied for user 'root'@'localhost' (using passwd:no)
  7. Linux下的iwpriv(iwlist、iwconfig)的简单应用
  8. python模拟sed在每行添加##
  9. 电商顾客满意的五大决定因素
  10. linux下测试RTC驱动相关的命令date和hwclock常见用法简介