Java封裝servlet發送請求(一)


 

 

/**

     * 發送https請求

     * 

     * @param requestUrl 請求地址

     * @param requestMethod 請求方式(GET、POST)

     * @param outputStr 提交的數據

     * @return JSONObject(通過JSONObject.get(key)的方式獲取json對象的屬性值)

     */

    public static JSONObject httpsRequest(String requestUrl, String requestMethod, String outputStr) {

        JSONObject jsonObject = null;

        try {

            // 創建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();



            URL url = new URL(requestUrl);

            HttpsURLConnection conn = (HttpsURLConnection) url.openConnection();

            conn.setSSLSocketFactory(ssf);

            

            conn.setDoOutput(true);

            conn.setDoInput(true);

            conn.setUseCaches(false);

            // 設置請求方式(GET/POST)

            conn.setRequestMethod(requestMethod);



            // 當outputStr不為null時向輸出流寫數據

            if (null != outputStr) {

                OutputStream outputStream = conn.getOutputStream();

                // 注意編碼格式

                outputStream.write(outputStr.getBytes("UTF-8"));

                outputStream.close();

            }



            // 從輸入流讀取返回內容

            InputStream inputStream = conn.getInputStream();

            InputStreamReader inputStreamReader = new InputStreamReader(inputStream, "utf-8");

            BufferedReader bufferedReader = new BufferedReader(inputStreamReader);

            String str = null;

            StringBuffer buffer = new StringBuffer();

            while ((str = bufferedReader.readLine()) != null) {

                buffer.append(str);

            }



            // 釋放資源

            bufferedReader.close();

            inputStreamReader.close();

            inputStream.close();

            inputStream = null;

            conn.disconnect();

            jsonObject = JSONObject.fromObject(buffer.toString());

        } catch (ConnectException ce) {

            log.error("連接超時:{}", ce);

        } catch (Exception e) {

            log.error("https請求異常:{}", e);

        }

        return jsonObject;

    }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM