zoukankan      html  css  js  c++  java
  • Https 请求工具(put,post,get)

    package com.util;
    /**
     * @Description: 类描述
     * @author 作者 ll E-mail:80002132@sf-express.com
     * @version 1.0
     * @date 创建时间:2017年3月15日 下午6:13:49
     */
    import java.io.ByteArrayOutputStream;  
    import java.io.DataOutputStream;  
    import java.io.IOException;  
    import java.io.InputStream;  
    import java.net.URL;  
    import java.security.KeyManagementException;  
    import java.security.NoSuchAlgorithmException;  
    import java.security.cert.CertificateException;  
    import java.security.cert.X509Certificate;
    import java.util.HashMap;
    import java.util.Map;
    
    import javax.net.ssl.HostnameVerifier;  
    import javax.net.ssl.HttpsURLConnection;  
    import javax.net.ssl.SSLContext;  
    import javax.net.ssl.SSLSession;  
    import javax.net.ssl.TrustManager;  
    import javax.net.ssl.X509TrustManager;
    
    import org.apache.commons.httpclient.HttpClient;
    import org.apache.commons.httpclient.HttpConstants;
    import org.apache.commons.httpclient.HttpStatus;
    import org.apache.commons.httpclient.methods.PutMethod;
    import org.apache.commons.httpclient.params.HttpMethodParams;
    
    import com.alibaba.fastjson.JSON;  
      
    public class HttpsUtil {  
      
        private static class TrustAnyTrustManager implements X509TrustManager {  
      
            public void checkClientTrusted(X509Certificate[] chain, String authType)  
                    throws CertificateException {  
            }  
      
            public void checkServerTrusted(X509Certificate[] chain, String authType)  
                    throws CertificateException {  
            }  
      
            public X509Certificate[] getAcceptedIssuers() {  
                return new X509Certificate[] {};  
            }  
        }  
      
        private static class TrustAnyHostnameVerifier implements HostnameVerifier {  
            public boolean verify(String hostname, SSLSession session) {  
                return true;  
            }  
        }  
      
        /** 
         * post方式请求服务器(https协议) 
         *  
         * @param url 
         *            请求地址 
         * @param content 
         *            参数 
         * @param charset 
         *            编码 
         * @return 
         * @throws NoSuchAlgorithmException 
         * @throws KeyManagementException 
         * @throws IOException 
         */  
        public static String post(String url, String content)  
                throws NoSuchAlgorithmException, KeyManagementException,  
                IOException {  
            SSLContext sc = SSLContext.getInstance("SSL");  
            sc.init(null, new TrustManager[] { new TrustAnyTrustManager() },  
                    new java.security.SecureRandom());  
      
            URL console = new URL(url);  
            HttpsURLConnection conn = (HttpsURLConnection) console.openConnection();  
            conn.setSSLSocketFactory(sc.getSocketFactory());  
            conn.setRequestMethod("POST");
            conn.setHostnameVerifier(new TrustAnyHostnameVerifier());  
            conn.setDoOutput(true);  
            conn.setRequestProperty("Content-Type", "application/json");
            conn.connect();  
            DataOutputStream out = new DataOutputStream(conn.getOutputStream());  
            out.write(content.getBytes("UTF8"));  
            // 刷新、关闭  
            out.flush();  
            out.close();  
            InputStream is = conn.getInputStream();  
            if (is != null) {  
                ByteArrayOutputStream outStream = new ByteArrayOutputStream();  
                byte[] buffer = new byte[1024];  
                int len = 0;  
                while ((len = is.read(buffer)) != -1) {  
                    outStream.write(buffer, 0, len);  
                }  
                is.close();  
                return outStream.toString();  
            }  
            return null;  
        } 
        
        /** 
         * post方式请求服务器(https协议) 
         *  
         * @param url 
         *            请求地址 
         * @param content 
         *            参数 
         * @param charset 
         *            编码 
         * @return 
         * @throws NoSuchAlgorithmException 
         * @throws KeyManagementException 
         * @throws IOException 
         */  
        public static String put(String url, String content)  
                throws NoSuchAlgorithmException, KeyManagementException,  
                IOException {  
            SSLContext sc = SSLContext.getInstance("SSL");  
            sc.init(null, new TrustManager[] { new TrustAnyTrustManager() },  
                    new java.security.SecureRandom());  
      
            URL console = new URL(url);  
            HttpsURLConnection conn = (HttpsURLConnection) console.openConnection();  
            conn.setRequestMethod("PUT");
            conn.setSSLSocketFactory(sc.getSocketFactory());  
            conn.setHostnameVerifier(new TrustAnyHostnameVerifier());  
            conn.setDoOutput(true);  
            conn.setRequestProperty("Content-Type", "application/json");
            conn.connect();  
            DataOutputStream out = new DataOutputStream(conn.getOutputStream());  
            out.write(content.getBytes("UTF8"));  
            // 刷新、关闭  
            out.flush();  
            out.close();  
            InputStream is = conn.getInputStream();  
            if (is != null) {  
                ByteArrayOutputStream outStream = new ByteArrayOutputStream();  
                byte[] buffer = new byte[1024];  
                int len = 0;  
                while ((len = is.read(buffer)) != -1) {  
                    outStream.write(buffer, 0, len);  
                }  
                is.close();  
                return outStream.toString();  
            }  
            return null;  
        } 
        
        public static void main(String [] args) throws KeyManagementException, NoSuchAlgorithmException, IOException{
        	Map<String,Object> map=new HashMap<String,Object>();
        	HttpsUtil.post("url", JSON.toJSONString(map));
        }
        
        
    
    }  
    

      

  • 相关阅读:
    BOS13——quartz定时任务,Highcharts前端图表的使用
    BOS12——多对多添加方法,多对多页面需要字段问题(不多的话直接提供get方法),修改Realm中授权方法(查询数据库),缓存Java对象的方法,加载左侧菜单(ztree提供pId)
    BOS10——权限控制的实现,apache shiro权限管理框架的使用,参数同名问题,EasyUI的combotree的使用
    BOS08——Web工程中的CXF客户端,加载select框中的内容,select框移动,提交时将select全部选中,CRM中更新的方法,别名的用于不用
    CXF——WebService简介,CXF框架的使用
    BOS06——带有过滤条件的查询(解决form表单提交时,分页携带过滤条件困难的问题)and连表查询返回数据不标准问题,文件导出,BaseDao扩展一个离线Criteria查询,前端字段名重复问题(不知道对应那个字段了),多张表保存问题
    Python基础之文件处理
    Python基础之字符编码
    Python基础之数据类型
    Python安装
  • 原文地址:https://www.cnblogs.com/zuolun2017/p/6564330.html
Copyright © 2011-2022 走看看