zoukankan      html  css  js  c++  java
  • 使用RestTemplate发送post请求

    最近使用RestTemplate发送post请求,遇到了很多问题,如转换httpMessage失败、中文乱码等,调了好久才找到下面较为简便的方法:

     1         RestTemplate restTemplate = new RestTemplate();
     2         HttpHeaders headers = new HttpHeaders();
     3         MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8");
     4         headers.setContentType(type);
     5         headers.add("Accept", MediaType.APPLICATION_JSON.toString());
     6         
     7         JSONObject jsonObj = JSONObject.fromObject(params);
     8         
     9         HttpEntity<String> formEntity = new HttpEntity<String>(jsonObj.toString(), headers);
    10 
    11         String result = restTemplate.postForObject(url, formEntity, String.class);

    如果直接使用在postForObject中把对象传入很容易出现no suitable HttpMessageConverter found for request type的错误,建议直接先转成字符串,见jsonObj.otString(),网上有人说设置RestTemplate的HttpMessageConverter,试了一下要引入各种包。另外要注意中文编码问题,网上有人说StringHttpMessageConverter默认使用ISO-8859-1,要指定为UTF-8编码,自己尝试没有成功,最后通过指定contentType的方式解决了。

  • 相关阅读:
    个人网站
    物理读,逻辑读,预读
    正则表达式
    面向对象五大基本原则
    工作总结
    sql性能优化
    sqlServer游标的使用
    ASP.NET安全[开发ASP.NET MVC应用程序时值得注意的安全问题](转)
    一个简单问题引发对IEnumerable和IQueryable的思考
    EFCodeFirst 各种命令整理
  • 原文地址:https://www.cnblogs.com/BensonHe/p/4602746.html
Copyright © 2011-2022 走看看