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);

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

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • nvicat15激活码_通用破解码

    nvicat15激活码_通用破解码,https://javaforall.cn/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

  • 设计模式初探——简单工厂模式

    设计模式初探——简单工厂模式

  • windows下如何安装git及配置环境_git安装失败

    windows下如何安装git及配置环境_git安装失败下载安装1.从git官网下载一个git安装包,官网下载地址http://www.git-scm.com/download/2.双击安装程序(如果没有SecurityWarning请跳过此步骤),请点击【Run&gt;】3.阅读协议,点击【Next&gt;】4.选择安装位置,点击【Next&gt;】5.选择安装组件:这里可以使用默认选项,点击【Next…

  • java BigDecimal 加减乘除运算

    java BigDecimal 加减乘除运算注意除法运算,分母为0的问题,还有就是除法后保留几位小数点的问题//两个flot相加publicfloattwoFloatAdd(floata,floatb){BigDecimala1=newBigDecimal(Float.toString(a));BigDecimalb1=newBigDecimal(Float.toString(b));Floatadd=a1.add(b1).floatValue()

  • 多模态综述

    多模态综述多模态综述介绍参考文献:《MultimodalMachineLearning:ASurveyandTaxonomy》介绍我们身边的环境就是一个多模态的环境,看到的实体、听到的声音、闻到的气味和尝到的味觉。本篇综述不是着重于多模态的应用,而是重点关注多模态的方法和技术。多模态问题的定义在于数据来源是不同模态的数据,而这些数据具有异质性(heterogeneity),则带来了多模态的五个挑战:representation,translation,alignment,fusion和co-

  • notepad++注释快捷键[通俗易懂]

    notepad++注释快捷键[通俗易懂]notepad++注释快捷键快捷键如下:单行、多行注释//方式:ctrl+k区块注释/**/方式:ctrl+q取消单行、多行、区块注释:ctrl+shift+k…

发表回复

您的电子邮箱地址不会被公开。

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