zoukankan      html  css  js  c++  java
  • HttpClientUtil 工具类 实现跨域请求数据

      1 package com.xxx.common.util;
      2 
      3 import java.io.IOException;
      4 import java.net.URI;
      5 import java.util.ArrayList;
      6 import java.util.List;
      7 import java.util.Map;
      8 import org.apache.http.NameValuePair;
      9 import org.apache.http.client.entity.UrlEncodedFormEntity;
     10 import org.apache.http.client.methods.CloseableHttpResponse;
     11 import org.apache.http.client.methods.HttpGet;
     12 import org.apache.http.client.methods.HttpPost;
     13 import org.apache.http.client.utils.URIBuilder;
     14 import org.apache.http.entity.ContentType;
     15 import org.apache.http.entity.StringEntity;
     16 import org.apache.http.impl.client.CloseableHttpClient;
     17 import org.apache.http.impl.client.HttpClients;
     18 import org.apache.http.message.BasicNameValuePair;
     19 import org.apache.http.util.EntityUtils;
     20 
     21 public class HttpClientUtil {
     22 
     23     public static String doGet(String url, Map<String, String> param) {
     24         // 创建Httpclient对象
     25         CloseableHttpClient httpclient = HttpClients.createDefault();
     26         String resultString = "";
     27         CloseableHttpResponse response = null;
     28         try {
     29             // 创建uri
     30             URIBuilder builder = new URIBuilder(url);
     31             if (param != null) {
     32                 for (String key : param.keySet()) {
     33                     builder.addParameter(key, param.get(key));
     34                 }
     35             }
     36             URI uri = builder.build();
     37 
     38             // 创建http GET请求
     39             HttpGet httpGet = new HttpGet(uri);
     40 
     41             // 执行请求
     42             response = httpclient.execute(httpGet);
     43             // 判断返回状态是否为200
     44             if (response.getStatusLine().getStatusCode() == 200) {
     45                 resultString = EntityUtils.toString(response.getEntity(), "UTF-8");
     46             }
     47         } catch (Exception e) {
     48             e.printStackTrace();
     49         } finally {
     50             try {
     51                 if (response != null) {
     52                     response.close();
     53                 }
     54                 httpclient.close();
     55             } catch (IOException e) {
     56                 e.printStackTrace();
     57             }
     58         }
     59         return resultString;
     60     }
     61 
     62     public static String doGet(String url) {
     63         return doGet(url, null);
     64     }
     65 
     66     public static String doPost(String url, Map<String, String> param) {
     67         // 创建Httpclient对象
     68         CloseableHttpClient httpClient = HttpClients.createDefault();
     69         CloseableHttpResponse response = null;
     70         String resultString = "";
     71         try {
     72             // 创建Http Post请求
     73             HttpPost httpPost = new HttpPost(url);
     74             // 创建参数列表
     75             if (param != null) {
     76                 List<NameValuePair> paramList = new ArrayList<>();
     77                 for (String key : param.keySet()) {
     78                     paramList.add(new BasicNameValuePair(key, param.get(key)));
     79                 }
     80                 // 模拟表单
     81                 UrlEncodedFormEntity entity = new UrlEncodedFormEntity(paramList, "utf-8");
     82                 httpPost.setEntity(entity);
     83             }
     84             // 执行http请求
     85             response = httpClient.execute(httpPost);
     86             resultString = EntityUtils.toString(response.getEntity(), "utf-8");
     87         } catch (Exception e) {
     88             e.printStackTrace();
     89         } finally {
     90             try {
     91                 response.close();
     92             } catch (IOException e) {
     93                 e.printStackTrace();
     94             }
     95         }
     96         return resultString;
     97     }
     98 
     99     public static String doPost(String url) {
    100         return doPost(url, null);
    101     }
    102 
    103     /**
    104      * 请求的参数类型为json
    105      * @param url
    106      * @param json
    107      * @return
    108      * {username:"",pass:""}
    109      */
    110     public static String doPostJson(String url, String json) {
    111         // 创建Httpclient对象
    112         CloseableHttpClient httpClient = HttpClients.createDefault();
    113         CloseableHttpResponse response = null;
    114         String resultString = "";
    115         try {
    116             // 创建Http Post请求
    117             HttpPost httpPost = new HttpPost(url);
    118             // 创建请求内容
    119             StringEntity entity = new StringEntity(json, ContentType.APPLICATION_JSON);
    120             httpPost.setEntity(entity);
    121             // 执行http请求
    122             response = httpClient.execute(httpPost);
    123             resultString = EntityUtils.toString(response.getEntity(), "utf-8");
    124         } catch (Exception e) {
    125             e.printStackTrace();
    126         } finally {
    127             try {
    128                 response.close();
    129             } catch (IOException e) {
    130                 e.printStackTrace();
    131             }
    132         }
    133         return resultString;
    134     }
    135 }
  • 相关阅读:
    分享一个本人打造的公众号吸粉、推广方案。
    iOS开发简记(8):数据持久化
    iOS开发简记(7):网络请求模块
    iOS开发简记(6):storyboard的使用
    iOS开发简记(5):设备唯一标识与全局变量
    iOS开发简记(4):录音AVAudioRecorder
    iOS开发简记(3):tips提示
    iOS开发简记(2):自定义tabbar
    spring+mybatis+springMVC框架配置多数据源
    Docker常用操作
  • 原文地址:https://www.cnblogs.com/bignew/p/6715671.html
Copyright © 2011-2022 走看看