背景:

跨模块通过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、异常请求返回 415HttpHeaders 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);

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

RestTemplate post请求返回状态码415相关推荐

  1. HTTP请求返回状态码意义(详)

    所有HTTP请求返回状态码意义 100 Continue 继续.客户端应继续其请求 101 Switching Protocols 切换协议.服务器根据客户端的请求切换协议.只能切换到更高级的协议,例 ...

  2. CEF3:https 请求返回状态码canceled

    CEF3:https 请求返回状态码canceled 客户端项目中浏览器内核用的cef3,最近在测试的时候 服务器配置的为https但是使用IP访问的.像如果 https服务器并没有完全安装正规的配置 ...

  3. ajax返回状态码为零,ajax - HTTP请求返回状态码0时的含义是什么?

    ajax - HTTP请求返回状态码0时的含义是什么? JavaScript网络调用(例如fetch或XMLHttpRequest)或任何其他类型的HTTP网络请求在HTTP状态代码为0时失败意味着什 ...

  4. python-网页请求返回状态码429

    在做读取本地cookies免登陆直接留言时,代码没有报错,但返回状态码为429,返回结果为:<Response [429]> 表示在短时间内,用户发送了太多的请求,超出了"频次限 ...

  5. 查看HTTP请求返回状态码对照表详解

    状态码 描述 100 Continue 初始的请求已经接受,客户应当继续发送请求的其余部分 101 Switching Protocols 服务器将遵从客户的请求转换到另外一种协议 200 OK 指示 ...

  6. HTTP网络请求返回状态码

    HTTP状态码表示客户端HTTP请求的返回结果.标记服务器端的处理是否正常或者是出现的错误,能够根据返回的状态码判断请求是否得到正确的处理很重要. 平时在开发的时候,也能通过查看此状态码更快的获取的错 ...

  7. ajax请求返回状态码

    1开头的http状态码 表示临时响应并需要请求者继续执行操作的状态代码. 100   (继续) 请求者应当继续提出请求. 服务器返回此代码表示已收到请求的第一部分,正在等待其余部分.   101   ...

  8. HTTP请求返回状态码详解

    当用户试图通过 HTTP 访问一台正在运行 Internet 信息服务 (IIS) 的服务器上的内容时,IIS 返回一个表示该请求的状态的数字代码.状态代码可以指明具体请求是否已成功,还可以揭示请求失 ...

  9. HTTP请求返回状态码

    消息:代表请求已被接收,需要继续处理.临时响应. 100 Continue 告知客户部分响应已被服务器接收,客户端应继续发送请求. 成功:服务器已经接收理解并接受请求. 200 (OK) 请求成功,返 ...

最新文章

  1. type python_typepython
  2. html中input不可编辑状态,css如何实现input不可编辑
  3. Hadoop系列(三)MapReduce Job的几种提交运行模式
  4. mysql分区列要包含主键吗_MYSQL的分区字段,必须包含在主键字段内
  5. 迭代器 java_百战程序员:Java设计模式之迭代器模式
  6. jdbc连接云数据库mysql数据库_使用jdbc连接mysql数据库
  7. 《梦断代码》读书笔记1
  8. 【Kafka】kafka 再均衡监听器 ConsumerRebalanceListener
  9. CUDA、MPI和SU混编,MakeFile文件的编写
  10. 浏览器显示html过程,浏览器显示页面的流程
  11. springmvc跨域资料收集
  12. python爬虫,以某小说网站为例
  13. eclipse运行代码后变为红色和绿色
  14. 解决request-html chromium下载失败原因
  15. pycharm创建的.py文件显示为.txt文件样式
  16. win10添加右键sublime打开方式
  17. matlab 插值生成曲面,[转]Matlab曲面拟合和插值
  18. 买工业路由器看什么参数
  19. 杨绛:越是难熬的时候,人越要体面
  20. 常用网站网址(个个都是精华)

热门文章

  1. 新零售, 听听行业大佬们是怎么说的吧
  2. CorelDRAW插件-GMS插件开发-VBA基础语法-变量、运算符、函数-CDR插件(三)
  3. 东方梦符祭 新手问题
  4. 王者s19服务器维护到什么时候,王者荣耀S19赛季什么时候结束?S19赛季结束时间和S20开启准确时间[多图]...
  5. 《现代软件工程—构建之法》
  6. js 余数 取_js取整数、取余数【转】
  7. 杨桃的Python笔记1——Python代码中分号的使用
  8. 天花板级别的python读取文件方法,真的香.......
  9. 【Android】WebView安全漏洞问题
  10. Keil5新建stm32工程