首页 > 编程语言 >java RestTemplate 发送post请求

java RestTemplate 发送post请求

时间:2023-10-10 21:33:41浏览次数:34  
标签:java String restTemplate RestTemplate param headers new post

case1: POST, 格式:application/json

/**
 * 采用POST请求,数据格式为 application/json,并且返回结果是JSON string
 * @param url
 * @param
 * @return
 */
public  static String postForJson(String url, JSONObject json){
    RestTemplate restTemplate = new RestTemplate();
    //设置Http Header
    HttpHeaders headers = new HttpHeaders();
    //设置请求媒体数据类型
    headers.setContentType(MediaType.APPLICATION_JSON);
    //设置返回媒体数据类型
    headers.add("Accept", MediaType.APPLICATION_JSON.toString());
    HttpEntity<String> formEntity = new HttpEntity<String>(json.toString(), headers);
    return restTemplate.postForObject(url, formEntity, String.class);
}

 

case2:POST, 格式:application/x-www-form-urlencoded

/**
 * 采用POST请求,数据格式为 application/x-www-form-urlencoded,并且返回结果是JSON string
 * @param url 请求地址
 * @param
 * @return
 */
public static String postInvocation(String url, MultiValueMap<String, Object> param) {
    RestTemplate restTemplate = new RestTemplate();
    //设置Http Header
    HttpHeaders headers = new HttpHeaders();
    //设置请求媒体数据类型
    headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
    //设置返回媒体数据类型
    HttpEntity<MultiValueMap<String, Object>> httpEntity = new HttpEntity<>(param, headers);
    return restTemplate.postForObject(url, httpEntity,String.class);
}

 

问题 No beans of 'RestTemplate' type found

使用RestTemplate, 如果直接使用注解

@Autowired
private RestTemplate restTemplate2;

报错:Could not autowire. No beans of 'RestTemplate' type found. 

原因:SpringBoot在版本≥1.4后不再自动定义RestTemplate,而是需要自己手动定义。

解① 自定义Bean

@Configuration
public class RestTemplateConfig {

    @Bean
    public RestTemplate restTemplate() {
        return new RestTemplate();
    }
}

 

解② 手工自定义

RestTemplate restTemplate = new RestTemplate();
or
private RestTemplate restTemplate = new RestTemplateBuilder()
.setConnectTimeout(Duration.ofSeconds(2))
.setReadTimeout(Duration.ofSeconds(5))
.build();

参考

https://www.4spaces.org/1069.html

https://blog.csdn.net/qq_27130997/article/details/81625845

标签:java,String,restTemplate,RestTemplate,param,headers,new,post
From: https://www.cnblogs.com/kaituorensheng/p/17753869.html

相关文章

  • postgre压力测试
    postgre压力测试基于SysBench介绍SysBench是一个开源的跨平台系统性能基准测试工具,可以这样安装和使用:SysBench支持CPU、内存、磁盘IO、网络IO等系统测试,以及MySQL、PostgreSQL等数据库测试。安装可以从GitHub下载SysBench源码并编译安装:gitclonehttps://......
  • 《剑指offer》面试题的Java实现-从尾到头打印链表
    输⼊⼀个链表的头节点,按链表从尾到头的顺序返回每个节点的值(⽤数组返回)。⽐如下⾯的链表: publicstaticclassLinkNode{intvalue;LinkNodenext;LinkNode(intvalue){this.value=value;}}//思路:将链表进行遍历,在遍历的过程中记录元素的个数,//然......
  • 运算符-包机制-javaDoc生成文档
    publicclassDemo12{publicstaticvoidmain(String[]args){//与(and)或(or)非(取反)booleana=true;booleanb=false;System.out.println("a&&b:"+(b&&a));//逻辑与运算:两个变量都为真,结果才为trueSystem.......
  • 如何在JavaScript中验证电子邮件地址?
    内容来自DOChttps://q.houxu6.top/?s=如何在JavaScript中验证电子邮件地址?我想在将用户输入发送到服务器或尝试向其发送电子邮件之前,在JavaScript中检查它是否是电子邮件地址,以防止最基本的拼写错误。我该如何实现?使用正则表达式可能是在JavaScript中验证电子邮件地址的最......
  • 在JavaScript中,如何替换所有出现的字符串?
    内容来自DOChttps://q.houxu6.top/?s=在JavaScript中,如何替换所有出现的字符串?给定一个字符串:s="Testabctesttestabctesttesttestabctesttestabc";这似乎只删除了上面字符串中的第一个abc:s=s.replace('abc','');如何替换所有的它的出现?在大多数流......
  • 【Android面试】2023最新面试专题六:Java并发编程(一)
    1、假如只有一个cpu,单核,多线程还有用吗?详细讲解享学课堂移动互联网系统课程:架构师筑基必备技能《线程与进程的理论知识入门1》这道题想考察什么?是否了解并发相关的理论知识考察的知识点cpu多线程的基本概念操作系统的调度任务机制CPU密集型和IO密集型理论考生应该如何回答CPU的执......
  • Java观察者模式-SpringBoot实现观察者模式
    观察者模式一、Java观察者模式Java观察者模式是一种设计模式,用于实现对象之间的一对多依赖关系。在观察者模式中,当一个对象的状态发生变化时,它的所有依赖对象(观察者)都会自动收到通知并进行相应的更新。观察者模式由以下几个核心组件组成:主题(Subject):也称为被观察者或可观察对......
  • Java 集合
    目录Java集合List,Set,Queue,Map的区别集合框架底层数据结构CollectionListSetQueueMap如何选用集合?ListArrayList和Array(数组)的区别转换ArrayList转换为数组数组转换为ArrayListSetComparable和Comparator的区别Comparable接口Comparator接口总结HashSetLinkedHas......
  • Java 中 extends 与implements 的区别 ?
    一、介绍extends与implements的概念1、类与类之间的继承使用extends:子类extends父类的属性和方法,并且进行扩展或者重写。//父类classAnimal{publicvoideat(){System.out.println("Animaliseating");}publicvoidnoeat(){......
  • Java设计模式之责任链模式
    1.1.概述在现实生活中,常常会出现这样的事例:一个请求有多个对象可以处理,但每个对象的处理条件或权限不同。例如,公司员工请假,可批假的领导有部门负责人、副总经理、总经理等,但每个领导能批准的天数不同,员工必须根据自己要请假的天数去找不同的领导签名,也就是说员工必须记住每个领......