話不多說上代碼
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.net.HttpURLConnection; import java.net.URL; import java.security.cert.CertificateException; import java.security.cert.X509Certificate; import javax.net.ssl.HttpsURLConnection; import javax.net.ssl.SSLContext; import javax.net.ssl.SSLSocketFactory; import javax.net.ssl.TrustManager; import javax.net.ssl.X509TrustManager; public class MyX509TrustManager implements X509TrustManager { @Override public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException { // TODO Auto-generated method stub } @Override public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException { // TODO Auto-generated method stub } @Override public X509Certificate[] getAcceptedIssuers() { // TODO Auto-generated method stub return null; } // 處理http請求 requestUrl為請求地址 requestMethod請求方式,值為"GET"或"POST" public static String httpRequest(String requestUrl, String requestMethod, String outputStr) { StringBuffer buffer = null; try { URL url = new URL(requestUrl);// 請求地址 HttpURLConnection conn = (HttpURLConnection) url.openConnection();// 創建連接對象 conn.setDoOutput(true);// 是否輸出 conn.setDoInput(true);// 是否輸入 conn.setRequestMethod(requestMethod);// post Or get conn.setRequestProperty("Charset", "utf-8"); conn.setFollowRedirects(false); conn.setInstanceFollowRedirects(false); //cookie conn.setRequestProperty("cookie","cookie"); conn.connect();// 發起連接 // 往服務器端寫內容 也就是發起http請求需要帶的參數 if (null != outputStr) { OutputStream os = conn.getOutputStream(); os.write(outputStr.getBytes("utf-8")); os.close(); } // 讀取服務器端返回的內容 // PrintWriter out = new PrintWriter(new // OutputStreamWriter(conn.getOutputStream(),"utf-8")); // out.println(obj); InputStream is = conn.getInputStream(); InputStreamReader isr = new InputStreamReader(is, "UTF-8"); BufferedReader br = new BufferedReader(isr); buffer = new StringBuffer(); String line = null; while ((line = br.readLine()) != null) { buffer.append(line); } } catch (Exception e) { e.printStackTrace(); } return buffer.toString(); } /* * 處理https GET/POST請求 請求地址、請求方法、參數 */ public static String httpsRequest(String requestUrl, String requestMethod, String outputStr) { StringBuffer buffer = null; try { // 創建SSLContext SSLContext sslContext = SSLContext.getInstance("SSL"); TrustManager[] tm = { new MyX509TrustManager() }; // 初始化 sslContext.init(null, tm, new java.security.SecureRandom()); ; // 獲取SSLSocketFactory對象 SSLSocketFactory ssf = sslContext.getSocketFactory(); URL url = new URL(requestUrl); HttpsURLConnection conn = (HttpsURLConnection) url.openConnection(); conn.setDoOutput(true); conn.setDoInput(true); conn.setUseCaches(false); conn.setRequestMethod(requestMethod); // 設置當前實例使用的SSLSoctetFactory conn.setSSLSocketFactory(ssf); conn.connect(); // 往服務器端寫內容 if (null != outputStr) { OutputStream os = conn.getOutputStream(); os.write(outputStr.getBytes("utf-8")); os.close(); } // 讀取服務器端返回的內容 InputStream is = conn.getInputStream(); InputStreamReader isr = new InputStreamReader(is, "utf-8"); // InputStreamReader isr = new InputStreamReader(is, "gbk"); BufferedReader br = new BufferedReader(isr); buffer = new StringBuffer(); String line = null; while ((line = br.readLine()) != null) { buffer.append(line); } } catch (Exception e) { e.printStackTrace(); } return buffer.toString(); } public static void main(String[] args) { //測試 //https String testHttpsUrl = "https://xxx"; String https = httpsRequest(testHttpsUrl, "GET", null); System.out.println(https); //http String testHttpUrl = "http://xxx"; String http = httpRequest(testHttpUrl, "GET", null); System.out.println(http); JSONObject jsonObject = JSONObject.parseObject(http); String pageIndex = jsonObject.getString("pageIndex"); JSONArray jsonArray = jsonObject.getJSONArray("postList"); JSONObject jsonObject1 = (JSONObject) jsonArray.get(0); String title = jsonObject1.getString("title"); System.out.println(pageIndex); System.out.println(title); } }