Java使用HttpsURLConnection進行Get和Post請求(繞過證書驗證)
阿新 • • 發佈:2019-01-20
public String gethttpsconnbypost(String url,Map headMap){ StringBuilder result = new StringBuilder(); try { //建立地址物件 URL u=new URL(url); //獲取HttpURLConnection連結物件 HttpURLConnection huconn=(HttpURLConnection) u.openConnection(); //繞過證書驗證,驗證主機名和伺服器驗證方案的匹配是可接受的 huconn.setHostnameVerifier(new CustomizedHostnameVerifier()); // 傳送POST請求必須設定如下兩行,如果打算使用 URL 連線進行輸出,則將 DoOutput 標誌設定為 true;如果不打算使用,則設定為 false。預設值為 false huconn.setDoOutput(true); //如果打算使用 URL 連線進行輸入,則將 DoInput 標誌設定為 true;如果不打算使用,則設定為 false。預設值為 true huconn.setDoInput(true); //設定POST方式連線 huconn.setRequestMethod("POST"); //建立頭資訊map迭代器 Iterator it = headMap.keySet().iterator(); //設定請求頭配置資訊 while (it.hasNext()) { String key = it.next(); String value = headMap.get(key); huconn.setRequestProperty(key, value); } //連線伺服器 OutputStreamWriter out = new OutputStreamWriter(huconn.getOutputStream(),"UTF-8"); //寫入請求體 out.write(data); out.flush(); out.close(); // 取得輸入流,並使用Reader讀取,設定字元編碼 BufferedReader in = new BufferedReader(new InputStreamReader(huconn.getInputStream(), "UTF-8")); String line; while ((line = in.readLine()) != null) { result.append(line); } } catch (IOException e) { e.printStackTrace(); } //關閉輸入流 finally{ try{ if(in!=null){ in.close(); } } catch(IOException ex){ ex.printStackTrace(); } } return result.toString(); }