java 使用restTemplate调用URL

整合方法:

package x.bfb6.cn.bfb_km.utils;
 
import com.alibaba.fastjson.JSONObject;
import org.springframework.http.*;
import org.springframework.web.client.RequestCallback;
import org.springframework.web.client.ResponseExtractor;
import org.springframework.web.client.RestTemplate;
 
import java.util.Iterator;
import java.util.Map;
import java.util.Objects;
 
public class HttpGetAndPost {
 
    /**
     * 通用post请求封装
     * @param url
     * @param jsonData
     * @return
     */
    public String httpPost(String url, JSONObject jsonData){
        RestTemplate restTemplate = new RestTemplate();
        //设置Http Header
        HttpHeaders headers = new HttpHeaders();
        headers.add("Content-Type","application/json");
        headers.add("Accept","application/json, text/plain, */*");
        //设置请求媒体数据类型
        headers.setContentType(MediaType.APPLICATION_JSON);
        //设置返回媒体数据类型
        headers.add("Accept", MediaType.APPLICATION_JSON.toString());
        HttpEntity<String> formEntity = new HttpEntity<String>(jsonData.toString(), headers);
        return restTemplate.postForObject(url, formEntity, String.class);
    }
 
    /**
     * 通用get请求
     * @param url
     * @return
     */
    public String httpGet(String url){
        RestTemplate restTemplate = new RestTemplate();
        //设置Http Header
        HttpHeaders headers = new HttpHeaders();
        headers.add("Content-Type","application/json");
        headers.add("Accept","application/json, text/plain, */*");
        //设置请求媒体数据类型
        headers.setContentType(MediaType.APPLICATION_JSON);
        //设置返回媒体数据类型
        headers.add("Accept", MediaType.APPLICATION_JSON.toString());
        return restTemplate.getForObject(url, String.class);
    }
 
    /**
     * 自定义请求头的post请求
     * @param url
     * @param jsonData
     * @param jsonHeaders
     * @return
     */
    public String httpPost(String url, JSONObject jsonData,JSONObject jsonHeaders){
        RestTemplate restTemplate = new RestTemplate();
        //设置Http Header
        HttpHeaders headers = getHeaders(jsonHeaders);
        //设置请求媒体数据类型
        headers.setContentType(MediaType.APPLICATION_JSON);
        //设置返回媒体数据类型
        headers.add("Accept", MediaType.APPLICATION_JSON.toString());
        HttpEntity<String> formEntity = new HttpEntity<String>(jsonData.toString(), headers);
        return restTemplate.postForObject(url, formEntity, String.class);
    }
 
 
    /**
     * 自定义请求头的get请求
     * @param url
     * @param jsonHeaders
     * @return
     */
    public String httpGet(String url,JSONObject jsonHeaders){
        RestTemplate restTemplate = new RestTemplate();
         HttpHeaders headers = getHeaders(jsonHeaders);
        HttpEntity request = new HttpEntity(headers);
        // 构造execute()执行所需要的参数。
        RequestCallback requestCallback = restTemplate.httpEntityCallback(request, JSONObject.class);
        ResponseExtractor<ResponseEntity<JSONObject>> responseExtractor = restTemplate.responseEntityExtractor(JSONObject.class);
        // 执行execute(),发送请求
        return   Objects.requireNonNull(Objects.requireNonNull(restTemplate.execute(url, HttpMethod.GET, requestCallback, responseExtractor)).getBody()).toString();
    }
 
 
 
 
    /**
     * json转化请求头
     * @param jsonHeaders
     * @return
     */
    public static HttpHeaders getHeaders(JSONObject jsonHeaders){
        Iterator iterator = jsonHeaders.entrySet().iterator();
        HttpHeaders headers = new HttpHeaders();
        while (iterator.hasNext()){
            Map.Entry entry = (Map.Entry) iterator.next();
            headers.add(entry.getKey().toString(),entry.getValue().toString());
        }
        return headers;
    }
 
 
}

嫌麻烦???不会用???往这看

 存在实体json请求
 private void postUrl(){
		String url = "你的url";
		//请求头携带token
        HttpHeaders headers = new HttpHeaders();
        headers.setContentType(MediaType.APPLICATION_JSON);
        headers.add("token", 你的token);
        //比如HttpEntity<User> httpEntity = new HttpEntity<User>(user, headers);
        HttpEntity<实体类> httpEntity = new HttpEntity<实体类>(实体类携带参数, headers);
        ResponseEntity<String> resp = restTemplate.exchange(url, HttpMethod.POST, httpEntity, String.class);
}
 如果不是实体只需要改变(HttpEntityMap<String, Object> dic = new HashMap<>();
 dic.put("id",你的id)
 HttpEntity httpEntity = new HttpEntity<>(dic, headers);     
 
 get的话更加简单了url携带参数
 ResponseEntity<String> resp = restTemplate.exchange(url, HttpMethod.GET, httpEntity, String.class);
  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值