restTemplate调用http

该代码片段展示了如何使用Spring的RestTemplate进行HTTP的POST、GET和DELETE操作。在POST方法中,它创建了一个HttpEntity对象并设置了请求头,然后调用restTemplate.postForObject发送请求。GET方法类似,但使用了HttpGet并调用exchange获取响应。DELETE方法则使用HttpDelete和exchange进行操作。
摘要由CSDN通过智能技术生成

1, restTemplate调用http ,post方法

    @Value("{portrait.url}")
    private String apiHost;

 /**
     * restTemplate调用http ,post方法
     *
     * @param
     * @return
     */
    @PostMapping("/api/item")
    public Object post(@Valid @RequestBody ItemsPublishDTO itemsListDTO) {
    //url ,apiHost路径写在配置类中
    String url = apiHost+ "/item";
	//请求头
    MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8");
    HttpHeaders headers = new HttpHeaders();
    headers.setContentType(type);
    headers.add("Accept", MediaType.APPLICATION_JSON.toString());
    //携带请求头参数
    headers.add("X-API-Key", "XX");
	//参数
	ItemsListDTO itemsListDTO = new ItemsListDTO();
	itemsListDTO.setxxx();
	itemsListDTO.setxxx();
    net.sf.json.JSONObject jsonObj = net.sf.json.JSONObject.fromObject(itemsPublishDTO);
      
    HttpEntity<String> formEntity = new HttpEntity<String>(jsonObj.toString(), headers);
    Object objectResponseEntity = restTemplate.postForObject(url ,formEntity ,Object.class);
    logger.info("消息响应内容:"+objectResponseEntity);
          
     return objectResponseEntity;
  
}

2, restTemplate调用http ,get方法

/**
     * restTemplate调用http ,get方法
     *
     * @param
     * @return
     */
    @GetMapping("/api/item/{userId}")
    public Object get(@PathVariable userId) {
   		//url
        String url = "http://xxxx.com/api/item/"+userId ;
        //请求头
        MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8");
        HttpHeaders headers = new HttpHeaders();
        headers.setContentType(type);
        headers.add("Accept", MediaType.APPLICATION_JSON.toString());
        //携带请求头参数
        headers.add("X-API-Key", "xxxx");

  		HttpEntity<JSONArray> formEntity = new HttpEntity<JSONArray>( headers);
        Object objectResponseEntity = restTemplate.exchange(url ,HttpMethod.GET ,formEntity, Object.class).getBody();
        logger.info("消息响应内容:"+objectResponseEntity);
        List<String> result = new ArrayList<>();

    return objectResponseEntity;
}

3, restTemplate调用http ,DELETE方法

/**
	     * restTemplate调用http ,DELETE方法
	     *
	     * @param
	     * @return
	     */
	    @GetMapping("/api/item/{userId}")
	    public Object DELETE(@PathVariable userId) {
	    //url
        String url = apiHost + "/user/" + id ;
        //请求头
        HttpHeaders headers = new HttpHeaders();
        headers.setContentType(MediaType.parseMediaType("application/json; charset=UTF-8"));
        headers.add("Accept", MediaType.APPLICATION_JSON.toString());
        //携带请求头参数
        headers.add("X-API-Key", "xxxx");

        HttpEntity<String> formEntity = new HttpEntity<>(headers);
        ResponseEntity<String> objectResponseEntity = restTemplate.exchange(url, HttpMethod.DELETE, formEntity, String.class);
        logger.info("消息响应内容:"+objectResponseEntity);
   

    return objectResponseEntity;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值