1. 程式人生 > >Java使用HttpsURLConnection進行Get和Post請求(繞過證書驗證)

Java使用HttpsURLConnection進行Get和Post請求(繞過證書驗證)

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();
	}

相關推薦

no