zoukankan      html  css  js  c++  java
  • HttpClient工具类

    <dependency>
    <groupId>org.apache.httpcomponents</groupId>
    <artifactId>httpclient</artifactId>
    <version>4.5</version>
    </dependency>
    
     
    
    
    package com;
    import org.apache.http.NameValuePair;
    import org.apache.http.client.ClientProtocolException;
    import org.apache.http.client.config.RequestConfig;
    import org.apache.http.client.entity.UrlEncodedFormEntity;
    import org.apache.http.client.methods.CloseableHttpResponse;
    import org.apache.http.client.methods.HttpGet;
    import org.apache.http.client.methods.HttpPost;
    import org.apache.http.client.utils.URIBuilder;
    import org.apache.http.impl.client.CloseableHttpClient;
    import org.apache.http.impl.client.HttpClients;
    import org.apache.http.message.BasicNameValuePair;
    import org.apache.http.util.EntityUtils;
    import java.io.IOException;
    import java.io.UnsupportedEncodingException;
    import java.net.URI;
    import java.net.URISyntaxException;
    import java.util.ArrayList;
    import java.util.List;
    import java.util.Map;
    
    public class M_HttpClient {
    public static String get(String url, Map<String, String> param) {
    
    //创建HttpClient对象
    CloseableHttpClient httpClient = HttpClients.createDefault();
    
    
    String resultString = "";
    CloseableHttpResponse response = null;
    try {
    //创建uri
    URIBuilder builder = new URIBuilder(url);
    if (param != null) {
    for (String key : param.keySet()) {
    builder.addParameter(key, param.get(key));
    }
    }
    URI uri = builder.build();
    
    //创建Http Get请求
    
    HttpGet httpGet=new HttpGet(uri);//HTTP Get请求(POST雷同)
    RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(1000).setConnectTimeout(1000).build();//设置请求和传输超时时间
    httpGet.setConfig(requestConfig);
    httpClient.execute(httpGet);//执行请求
    
    //执行请求
    response = httpClient.execute(httpGet);
    
    //判断返回状态是否为200
    if (response.getStatusLine().getStatusCode() == 200) {
    resultString = EntityUtils.toString(response.getEntity(), "UTF-8");
    }
    
    } catch (URISyntaxException e) {
    e.printStackTrace();
    } catch (ClientProtocolException e) {
    e.printStackTrace();
    } catch (IOException e) {
    e.printStackTrace();
    } finally {
    try {
    if (response != null) {
    response.close();
    }
    httpClient.close();
    } catch (IOException e) {
    e.printStackTrace();
    }
    }
    return resultString;
    }
    
    public static String get(String url) {
    return get(url, null);
    }
    public static String post(String url, Map<String, String> param) {
    //创建HttpClient对象
    CloseableHttpClient httpClient = HttpClients.createDefault();
    
    String resultString = "";
    CloseableHttpResponse response = null;
    
    try {
    //创建Http Post请求
    HttpPost httpPost = new HttpPost(url);
    
    //创建参数列表
    if (param != null) {
    List<NameValuePair> paramList = new ArrayList();
    for (String key : param.keySet()) {
    paramList.add(new BasicNameValuePair(key, param.get(key)));
    }
    
    //模拟表单
    UrlEncodedFormEntity entity = new UrlEncodedFormEntity(paramList, "UTF-8");
    httpPost.setEntity(entity);
    }
    
    //执行http请求
    response = httpClient.execute(httpPost);
    resultString = EntityUtils.toString(response.getEntity(), "UTF-8");
    
    } catch (UnsupportedEncodingException e) {
    e.printStackTrace();
    } catch (ClientProtocolException e) {
    e.printStackTrace();
    } catch (IOException e) {
    e.printStackTrace();
    } finally {
    try {
    if (response != null) {
    response.close();
    }
    httpClient.close();
    } catch (IOException e) {
    e.printStackTrace();
    }
    }
    
    return resultString;
    }
    
    public static String post(String url) {
    return post(url, null);
    }
    }
    
     
    
     
  • 相关阅读:
    jquery 第二节 Dom和jQuery的互相转换
    jquery 第一节 什么是jQuery
    SQL四大语句、四大完整性、五大约束
    empty和is_null以及isset函数在0、”0”、‘空串’、NULL、false、array()的计算值
    WAMP常用环境配置
    解读Java内部类
    每日编程系列——暗黑的字符串
    每日编程系列——跳石板
    每日编程系列——优雅的点
    每日编程系列——回文序列
  • 原文地址:https://www.cnblogs.com/minglie/p/9326803.html
Copyright © 2011-2022 走看看