RestTemplate post请求返回状态码415「建议收藏」

RestTemplate post请求返回状态码415「建议收藏」背景:跨模块通过post请求调用指定接口,返回415415状态码解释:UnsupportedMediaType对于当前请求的方法和所请求的资源,请求中提交的实体并不是服务器中所支持的格式,因此请求被拒绝错误日志:org.springframework.web.client.HttpClientErrorException:415nullatorg.springf…

大家好,又见面了,我是你们的朋友全栈君。

背景:

跨模块通过post请求调用指定接口,返回415

415状态码解释:

 Unsupported Media Type

对于当前请求的方法和所请求的资源,请求中提交的实体并不是服务器中所支持的格式,因此请求被拒绝

错误日志:

org.springframework.web.client.HttpClientErrorException: 415 null
atorg.springframework.web.client.DefaultResponseErrorHandler.handleError(DefaultResponseErrorHandler.java:86)
at org.springframework.web.client.RestTemplate.handleResponse(RestTemplate.java:708)

功能错误代码和正常代码比对

异常请求返回415:

RestTemplate restTemplate = new RestTemplate();
String url = "http://172.16.17.82/portal/zcm-cmdb/remote/exec";
 String cmd = "mkdir -p /tmp/lushuan/test5";
// 1、异常请求返回 415
 HttpHeaders headers = new HttpHeaders();
 MultiValueMap<String, String> map= new LinkedMultiValueMap<String, String>();
 map.add("host", "172.16.24.220");
 map.add("user", "root");
 map.add("cmd", cmd);
HttpEntity<MultiValueMap<String, String>> request = new HttpEntity<MultiValueMap<String, String>>(map, headers);
Object data = restTemplate.postForObject(url,request,Object.class);
LOGGER.info("TestRestTemplate testInstallCollectdByRemote data = {}", data);

正常代码演示1:

 RestTemplate restTemplate = new RestTemplate();
String url = "http://172.16.17.82/portal/zcm-cmdb/remote/exec";
String cmd = "mkdir -p /tmp/lushuan/test6";
Map<String, String> map = new HashMap<>();
map.put("host","172.16.24.220");
map.put("user","root");
map.put("cmd",cmd);
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
HttpEntity<Map<String, String>> request = new HttpEntity<>(map, headers);
JSONObject data = restTemplate.postForObject(url,request, JSONObject.class);
LOGGER.info("TestRestTemplate testInstallCollectdByRemote data = {}", data);

 正常代码演示2:

RestTemplate restTemplate = new RestTemplate();
String url = "http://172.16.17.82/portal/zcm-cmdb/remote/exec";
String cmd = "mkdir -p /tmp/lushuan/test7";
Map<String, String> map = new HashMap<>();
map.put("host","172.16.24.220");
map.put("user","root");
map.put("cmd",cmd);
// ParameterizedTypeReference 该类的目的是启用捕获和传递泛型
ParameterizedTypeReference<String> typeRef = new ParameterizedTypeReference<String>() {
};
JSONObject createDbJsonObject = JSONObject.fromObject(map);
HttpEntity<JSONObject> entityPost = new HttpEntity<JSONObject>(createDbJsonObject);
ResponseEntity<String> createDbResponse = restTemplate.exchange(url, HttpMethod.POST, entityPost,typeRef);
HttpStatus statusCode = createDbResponse.getStatusCode();
LOGGER.info("TestRestTemplate testInstallCollectdByRemote createDbResponse = {}", createDbResponse);
LOGGER.info("TestRestTemplate testInstallCollectdByRemote statusCode = {}", statusCode);

 两段代码的实现方式都可以,推荐第二种,可以获取返回的状态码,是否跨域等信息。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/146140.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • ROS安装教程_ps安装视频教程

    ROS安装教程_ps安装视频教程成功安装ROS!!

    2022年9月10日
    0
  • PLSQL注册码

    PLSQL注册码进入帮助->注册,输入:产品编号:kfsvzt6zh2exaxzxgjk44rv5kp2yp68vgk序列号:186220口令:xs374ca直接获得9999-12-31,美滋滋

    2022年7月13日
    21
  • 我的博客文章快速索引[通俗易懂]

    我的博客文章快速索引[通俗易懂]授人以鱼不如授人以渔,目的不是为了教会你具体项目开发,而是学会学习的能力。希望大家分享给你周边需要的朋友或者同学,说不定大神成长之路有博哥的奠基石。。。    为了方便大家了解最新博客内容,博哥在此置顶汇总贴,方便大家查阅所需内容。    此贴,大家可以看到博哥近期的进展情况:待写(计划写中)目前正在写(表示已经有初稿)期待中(表示正在考虑)一、你如果想学基于Arduino的E…

    2022年5月29日
    26
  • IDEA的下载和使用安装

    IDEA的下载和使用安装一.IDEA的下载IDEA下载地址:https://www.jetbrains.com/idea/download/#section=windowsIDEA分为两个版本:旗舰版(Ultimate)和社区版(Community)。旗舰版收费(限30天免费试用),社区版免费二.安装过程在这我们选择装旗舰版,社区版虽然免费,但是有些功能不全双击【ideaIU-2018.3.3.exe】安装文件:点击下一步(Next)选择好【文件的安装文件目录】,点击【Next】

    2022年5月31日
    159
  • Git 使用中显示“Another git process seems to be running in this repository…”问题解决

    Git 使用中显示“Another git process seems to be running in this repository…”问题解决

    2021年11月6日
    46
  • php获取客户端IP和服务器端IP[通俗易懂]

    php获取客户端IP和服务器端IP[通俗易懂]1.php获取客户端IP在PHP获取客户端IP时,常使用$_SERVER[“REMOTE_ADDR”]。但如果客户端是使用代理服务器来访问,那取到的是代理服务器的IP地址,而不是真正的客户端IP地址。要想透过代理服务器取得客户端的真实IP地址,就要使用$_SERVER[“HTTP_X_FORWARDED_FOR”]来读取。但只有客户端使用“透明代理”的情况下,$_S

    2025年6月24日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号