最近在使用Httpclient进行post时远程接口发生报错 报错信息: org.springframework.http.converter.HttpMessageNotReadableException: JSON parse er
最近在使用Httpclient进行post时远程接口发生报错
报错信息:
org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Unrecognized token 'Alarm': was expecting (jsON String, Number, Array, Object or token 'null', 'true' or 'false'); nested exception is com.fasterxml.jackson.core.JsonParseException: Unrecognized token 'Alarm': was expecting (JSON String, Number, Array, Object or token 'null', 'true' or 'false')
原因及解决方法:
原因是请求参数格式不正确,不是标准的json格式,通过JSONObject对象把参数转为json字符串即可,即修改消息体构造代码。
报错代码:
public HttpEntity httpPost(String url, Alarm data){ try{ CloseableHttpClient httpClient = HttpClients.createDefault(); // 创建httpPost实例 HttpPost post = new HttpPost(url); //构造消息头 post.setHeader("Content-type", "application/json; charset=utf-8"); // 构造消息体 StringEntity entity = new StringEntity(data.toString(), ContentType.create("application/json", "utf-8")); post.setEntity(entity); CloseableHttpResponse response = httpClient.execute(post); HttpEntity responseEntity = response.getEntity(); int statusCode = response.getStatusLine().getStatusCode(); //最后关闭HttpClient资源. httpClient.close(); return responseEntity; }catch (Exception e){ e.printStackTrace(); return null; } }
修改后的代码:
public HttpEntity httpPost(String url, Alarm data){ try{ CloseableHttpClient httpClient = HttpClients.createDefault(); // 创建httpPost实例 HttpPost post = new HttpPost(url); //构造消息头 post.setHeader("Content-type", "application/json; charset=utf-8"); // 构造消息体 StringEntity entity = new StringEntity(new JSONObject(data).toString(), ContentType.create("application/json", "utf-8")); post.setEntity(entity); CloseableHttpResponse response = httpClient.execute(post); HttpEntity responseEntity = response.getEntity(); int statusCode = response.getStatusLine().getStatusCode(); //最后关闭HttpClient资源. httpClient.close(); return responseEntity; }catch (Exception e){ e.printStackTrace(); return null; } }
JSONObject依赖:
org.json json 20211205
来源地址:https://blog.csdn.net/weixin_46205984/article/details/128477359
--结束END--
本文标题: com.fasterxml.jackson.core.JsonParseException: Unrecognized token ‘Alarm‘: was expecting (JSON Stri
本文链接: https://www.lsjlt.com/news/388738.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-04-01
2024-04-03
2024-04-03
2024-01-21
2024-01-21
2024-01-21
2024-01-21
2023-12-23
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0