網絡傳輸---HttpURLConnection


HttpURLConnection是java做網絡傳輸的一種,一般用於做數據的傳輸如xml數據傳輸

  1.創建及配置:

    1.1創建一個url對象,並指定url的地址

URL url = new URL(urlString);

    1.2 對此地址所引用的遠程對象的連接

 HttpURLConnection httpUrlConnection = (HttpURLConnection) url.openConnection();

    1.3 對此連接進行配置

//設置HttpURLConnection參數
            httpUrlConnection.setRequestMethod("POST");
            // 設置是否向httpUrlConnection輸出,因為這個是post請求,參數要放在
            // http正文內,因此需要設為true, 默認情況下是false;
            httpUrlConnection.setDoOutput(true);
            // 設置是否從httpUrlConnection讀入,默認情況下是true;
            httpUrlConnection.setDoInput(true);
            //設置不使用緩存
            httpUrlConnection.setUseCaches(false);
            //設置發送請求為utf-8
            httpUrlConnection.setRequestProperty("Content-type", "text/html;charset=utf-8");
            //設置網絡請求時間最多為5秒;
            httpUrlConnection.setConnectTimeout(5000);
            //讀取網頁請求結果時間為15秒
            httpUrlConnection.setReadTimeout(25000);

    1.4 這些配置完成之后才能開啟連接

// 連接,從上述url.openConnection()至此的配置必須要在connect之前完成,
            httpUrlConnection.connect();

  2.獲得對HttpURLConnection遠程對象連接的輸出

//輸出
            OutputStream out = httpUrlConnection.getOutputStream();
            //用到了緩存流,提高IO效率,由於數據為字符,用到字符轉字節的包裝流,並設置UTF-8編碼
            BufferedWriter bout = new BufferedWriter(new OutputStreamWriter(out,"utf-8"));
            bout.write("demo");
            bout.flush();
            bout.close();

  3.獲得對HttpURLConnection遠程對象連接的輸入結果

 //獲得返回結果
            if (httpUrlConnection.getResponseCode() == httpUrlConnection.HTTP_OK) {//判斷狀態碼是否為200
                    InputStream in = httpUrlConnection.getInputStream();
                    BufferedReader reader = new BufferedReader(new InputStreamReader(
                            in));
                    StringBuffer stringBuffer = new StringBuffer();
                    String str = "";
                    while ((str = reader.readLine()) != null) {
                            stringBuffer.append(str+"\n");
                    }
                    reader.close();
                    in.close();
                    return stringBuffer.toString();
            }else{
                    return null;
            }

4.PS:用到HttpURLConnection對象時肯定存在相對應的url地址,此時需要服務器部署url資源,用服務器對指定的請求做處理

  

    

 


免責聲明!

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



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