创建https请求

来源:互联网 发布:淘宝达人链接 编辑:程序博客网 时间:2024/06/05 03:45
//创建SSLContext对象,并使用我们指定的信任管理器初始化TrustManager[] tm = {new MyX509TrustManager ()}; SSLContext sslContext = SSLContext.getInstance("SSL","SunJSSE"); sslContext.init(null, tm, new java.security.SecureRandom()); //从上述SSLContext对象中得到SSLSocketFactory对象SSLSocketFactory ssf = sslContext.getSocketFactory();//创建HttpsURLConnection对象,并设置其SSLSocketFactory对象HttpsURLConnection conn = (HttpsURLConnection)url.openConnection();


以上代码,为关键代码!


以下为HttpsRequestUtil工具类


import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.OutputStream;import java.net.HttpURLConnection;import java.net.MalformedURLException;import java.net.URL;import java.net.URLEncoder;import java.security.NoSuchAlgorithmException;import java.security.NoSuchProviderException;import javax.net.ssl.HttpsURLConnection;import javax.net.ssl.SSLContext;import javax.net.ssl.SSLSocketFactory;import javax.net.ssl.TrustManager;import com.google.gson.Gson;import com.wechat.joyful.entity.TuLing;public class HttpsRequestUtil {public static String httpRequest(String requestUrl, String requestMethod, String outStr) throws Exception{String result = "";StringBuffer buffer = null;try {//建立连接URL url = new URL(requestUrl);TrustManager[] tm = {new MyX509TrustManager ()}; SSLContext sslContext = SSLContext.getInstance("SSL","SunJSSE"); sslContext.init(null, tm, new java.security.SecureRandom()); SSLSocketFactory ssf = sslContext.getSocketFactory();HttpsURLConnection conn = (HttpsURLConnection)url.openConnection();conn.setRequestMethod(requestMethod);conn.setDoInput(true);conn.setDoOutput(true);conn.connect();if(outStr!=null){OutputStream os = conn.getOutputStream();os.write(outStr.getBytes("UTF-8"));os.close();}//读取信息InputStream is = conn.getInputStream();InputStreamReader reader = new InputStreamReader(is,"utf-8");BufferedReader bReader = new BufferedReader(reader);buffer = new StringBuffer();String line = null;while((line = bReader.readLine())!=null){buffer.append(line);}result = buffer.toString();} catch (MalformedURLException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}return result;}public static void main(String[] args) {}}


MyX509TrustManager类


public class MyX509TrustManager implements X509TrustManager {public void checkClientTrusted(X509Certificate[] chain, String authType)throws CertificateException {}public void checkServerTrusted(X509Certificate[] chain, String authType)throws CertificateException {}public X509Certificate[] getAcceptedIssuers() {return null;}}



原创粉丝点击