zoukankan      html  css  js  c++  java
  • java httpclient

      1 package com.ss.utils;
      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 
      9 import org.apache.http.NameValuePair;
     10 import org.apache.http.client.entity.UrlEncodedFormEntity;
     11 import org.apache.http.client.methods.CloseableHttpResponse;
     12 import org.apache.http.client.methods.HttpGet;
     13 import org.apache.http.client.methods.HttpPost;
     14 import org.apache.http.client.utils.URIBuilder;
     15 import org.apache.http.entity.ContentType;
     16 import org.apache.http.entity.StringEntity;
     17 import org.apache.http.impl.client.CloseableHttpClient;
     18 import org.apache.http.impl.client.HttpClients;
     19 import org.apache.http.message.BasicNameValuePair;
     20 import org.apache.http.util.EntityUtils;
     21 
     22 public class HttpClientUtil {
     23 
     24     public static String doGet(String url, Map<String, String> param) {
     25 
     26         // 创建Httpclient对象
     27         CloseableHttpClient httpclient = HttpClients.createDefault();
     28 
     29         String resultString = "";
     30         CloseableHttpResponse response = null;
     31         try {
     32             // 创建uri
     33             URIBuilder builder = new URIBuilder(url);
     34             if (param != null) {
     35                 for (String key : param.keySet()) {
     36                     builder.addParameter(key, param.get(key));
     37                 }
     38             }
     39             URI uri = builder.build();
     40 
     41             // 创建http GET请求
     42             HttpGet httpGet = new HttpGet(uri);
     43 
     44             // 执行请求
     45             response = httpclient.execute(httpGet);
     46             // 判断返回状态是否为200
     47             if (response.getStatusLine().getStatusCode() == 200) {
     48                 resultString = EntityUtils.toString(response.getEntity(), "UTF-8");
     49             }
     50         } catch (Exception e) {
     51             e.printStackTrace();
     52         } finally {
     53             try {
     54                 if (response != null) {
     55                     response.close();
     56                 }
     57                 httpclient.close();
     58             } catch (IOException e) {
     59                 e.printStackTrace();
     60             }
     61         }
     62         return resultString;
     63     }
     64 
     65     public static String doGet(String url) {
     66         return doGet(url, null);
     67     }
     68 
     69     public static String doPost(String url, Map<String, String> param) {
     70         // 创建Httpclient对象
     71         CloseableHttpClient httpClient = HttpClients.createDefault();
     72         CloseableHttpResponse response = null;
     73         String resultString = "";
     74         try {
     75             // 创建Http Post请求
     76             HttpPost httpPost = new HttpPost(url);
     77             // 创建参数列表
     78             if (param != null) {
     79                 List<NameValuePair> paramList = new ArrayList<>();
     80                 for (String key : param.keySet()) {
     81                     paramList.add(new BasicNameValuePair(key, param.get(key)));
     82                 }
     83                 // 模拟表单
     84                 UrlEncodedFormEntity entity = new UrlEncodedFormEntity(paramList);
     85                 httpPost.setEntity(entity);
     86             }
     87             // 执行http请求
     88             response = httpClient.execute(httpPost);
     89             resultString = EntityUtils.toString(response.getEntity(), "utf-8");
     90         } catch (Exception e) {
     91             e.printStackTrace();
     92         } finally {
     93             try {
     94                 response.close();
     95             } catch (IOException e) {
     96                 // TODO Auto-generated catch block
     97                 e.printStackTrace();
     98             }
     99         }
    100 
    101         return resultString;
    102     }
    103 
    104     public static String doPost(String url) {
    105         return doPost(url, null);
    106     }
    107     
    108     public static String doPostJson(String url, String json) {
    109         // 创建Httpclient对象
    110         CloseableHttpClient httpClient = HttpClients.createDefault();
    111         CloseableHttpResponse response = null;
    112         String resultString = "";
    113         try {
    114             // 创建Http Post请求
    115             HttpPost httpPost = new HttpPost(url);
    116             // 创建请求内容
    117             StringEntity entity = new StringEntity(json, ContentType.APPLICATION_JSON);
    118             httpPost.setEntity(entity);
    119             // 执行http请求
    120             response = httpClient.execute(httpPost);
    121             resultString = EntityUtils.toString(response.getEntity(), "utf-8");
    122         } catch (Exception e) {
    123             e.printStackTrace();
    124         } finally {
    125             try {
    126                 response.close();
    127             } catch (IOException e) {
    128                 // TODO Auto-generated catch block
    129                 e.printStackTrace();
    130             }
    131         }
    132 
    133         return resultString;
    134     }
    135 }
  • 相关阅读:
    探索c#之一致性Hash详解
    Redis系列(三)-Redis发布订阅及客户端编程
    Redis系列(二)-Hredis客户端设计及开源
    关于电脑操作一些高效的方法工具
    探索c#之递归APS和CPS
    探索C#之系列目录导航
    探索c#之不可变数据类型
    SOA相关资料整理分享
    探索c#之尾递归编译器优化
    探索c#之函数创建和闭包
  • 原文地址:https://www.cnblogs.com/volatileAndCrazy/p/7843575.html
Copyright © 2011-2022 走看看