zoukankan      html  css  js  c++  java
  • 发送http请求和https请求的工具类

    package com.haiyisoft.cAssistant.utils;

    import java.io.IOException;
    import java.util.ArrayList;
    import java.util.Iterator;
    import java.util.List;
    import java.util.Map;
    import java.util.Map.Entry; 

    import org.apache.http.HttpEntity;
    import org.apache.http.HttpResponse;
    import org.apache.http.NameValuePair;
    import org.apache.http.client.HttpClient;
    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;

    /*
    * 利用HttpClient进行post请求的工具类
    */
    public class HttpClientUtil {
    public static String doPost(String url, Map<String, String> map, String charset) {
    HttpClient httpClient = null;
    HttpPost httpPost = null;
    String result = null;
    try {
    httpClient = new SSLClient();
    httpPost = new HttpPost(url);
    // 设置参数
    List<NameValuePair> list = new ArrayList<NameValuePair>();
    Iterator iterator = map.entrySet().iterator();
    while (iterator.hasNext()) {
    Entry<String, String> elem = (Entry<String, String>) iterator
    .next();
    list.add(new BasicNameValuePair(elem.getKey(), elem.getValue()));
    }
    if (list.size() > 0) {
    UrlEncodedFormEntity entity = new UrlEncodedFormEntity(list,
    charset);
    httpPost.setEntity(entity);
    }
    HttpResponse response = httpClient.execute(httpPost);
    if (response != null) {
    HttpEntity resEntity = response.getEntity();
    if (resEntity != null) {
    result = EntityUtils.toString(resEntity, charset);
    }
    }
    } catch (Exception ex) {
    ex.printStackTrace();
    return "888888";/**链接失败*/
    }
    return result;
    }

    public String doGet(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));
    }
    }
    java.net.URI uri = builder.build();

    // 创建http GET请求
    HttpGet httpGet = new HttpGet(uri);

    // 执行请求
    response = httpclient.execute(httpGet);
    // 判断返回状濁是否为200
    if (response.getStatusLine().getStatusCode() == 200) {
    resultString = EntityUtils.toString(response.getEntity(),
    "iso8859-1");
    }
    } catch (Exception e) {
    e.printStackTrace();
    } finally {
    try {
    if (response != null) {
    response.close();
    }
    httpclient.close();
    } catch (IOException e) {
    e.printStackTrace();
    }
    }
    return resultString;
    }
    }

    ==========================================

    package com.haiyisoft.cAssistant.utils;

    import java.security.cert.CertificateException;
    import java.security.cert.X509Certificate;

    import javax.net.ssl.SSLContext;
    import javax.net.ssl.TrustManager;
    import javax.net.ssl.X509TrustManager;

    import org.apache.http.conn.ClientConnectionManager;
    import org.apache.http.conn.scheme.Scheme;
    import org.apache.http.conn.scheme.SchemeRegistry;
    import org.apache.http.conn.ssl.SSLSocketFactory;
    import org.apache.http.impl.client.DefaultHttpClient;

    //用于进行Https请求的HttpClient
    @SuppressWarnings("deprecation")
    public class SSLClient extends DefaultHttpClient {
    public SSLClient() throws Exception {
    super();
    SSLContext ctx = SSLContext.getInstance("TLS");
    X509TrustManager tm = new X509TrustManager() {
    @Override
    public void checkClientTrusted(X509Certificate[] chain,
    String authType) throws CertificateException {
    }

    @Override
    public void checkServerTrusted(X509Certificate[] chain,
    String authType) throws CertificateException {
    }

    @Override
    public X509Certificate[] getAcceptedIssuers() {
    return null;
    }
    };
    ctx.init(null, new TrustManager[] { tm }, null);
    SSLSocketFactory ssf = new SSLSocketFactory(ctx,
    SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
    ClientConnectionManager ccm = this.getConnectionManager();
    SchemeRegistry sr = ccm.getSchemeRegistry();
    sr.register(new Scheme("https", 443, ssf));
    }
    }

  • 相关阅读:
    Mysql 存储引擎中InnoDB与Myisam的主要区别
    [转]memmove函数
    _Obj* __STL_VOLATILE* __my_free_list
    [转]STL的内存分配器
    [转载]C++ 堆与栈简单的介绍
    [转载]__type_traits
    [转载]C++中 引用&与取地址&的区别
    [转载]delete指针之后应该赋值NULL
    [转载]C++中声明与定义的区别
    学习笔记ubuntu/shell
  • 原文地址:https://www.cnblogs.com/zhangzhiqin/p/9933978.html
Copyright © 2011-2022 走看看