本文實例為大家分享了Android網絡連接工具類HttpUtil的使用方法,供大家參考,具體內容如下
該工具實現了發送get和post請求,請求的結果以String字符串的形式返回,比較適合接收服務器端發送過來的JSON字符串數據
get方法適合從服務器端獲取數據
post方法適合發送數據到服務器端
使用的時候直接調用get或post方法就好
get方法傳遞一個url請求
post方法傳遞一個url請求和要發送到服務器端的數據params
接收數據后返回的是一個String字符串
HttpUtil.java
public class HttpUtil{ /** * POST方法提交HTTP請求,返回請求的結果 * * @param url * @param params * @return 請求結果 * @throws IOException */ public static String sendPost(String url, String params) throws IOException { StringBuffer result = new StringBuffer(); // 創建URL對象 URL _url = new URL(url); // 創建HTTP連接 /** * 使用.openConnection()方法實例化一個URLConnection對象 * */ HttpURLConnection conn = (HttpURLConnection) _url.openConnection(); // 以下設置網絡連接的相關參數 /* 使用POST方法進行請求傳遞時,必須定義setDoInput和setDoOutput方法 */ // 設置輸入可用 conn.setDoInput(true); // 設置輸出可用 conn.setDoOutput(true); // 設置不使用緩存 conn.setUseCaches(false); // 設置連接超時的時間 - 5s conn.setConnectTimeout(5000); // 設置讀取超時的時間 - 5s conn.setReadTimeout(5000); // 設置HTTP請求的方法 - POST conn.setRequestMethod("POST"); // 設置HTTP請求屬性 - 連接方式:保持 conn.setRequestProperty("Connection", "Keep-Alive"); // 設置HTTP請求屬性 - 字符集:UTF-8 conn.setRequestProperty("Charset", "UTF-8"); // 設置HTTP請求屬性 - 傳輸內容的類型 - 簡單表單 conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); // 設置HTTP請求屬性 - 傳輸內容的長度 conn.setRequestProperty("Content-Length", String.valueOf(params.length())); // 設置HTTP請求屬性 - 用戶代理 conn.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.3; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0"); // 發送參數 ,采用字符流發送數據 PrintWriter pw = new PrintWriter(conn.getOutputStream()); pw.write(params); pw.flush(); pw.close(); // 獲取返回的結果 if (200 == conn.getResponseCode()) {// 判斷狀態碼 // 讀取服務器返回的 結果 - 字符流 BufferedReader br = new BufferedReader(new InputStreamReader( conn.getInputStream())); // 每次讀取一行 String line; while((line = br.readLine()) != null){ result.append(line); } } // 關閉HTTP連接 conn.disconnect(); return result.toString(); } /** * GET方法提交HTTP請求,返回請求的結果 * @param url * @return 請求的結果 * @throws IOException */ public static String sendGet(String url) throws IOException { StringBuffer result = new StringBuffer(); // 創建URL對象 URL _url = new URL(url); // 創建HTTP連接 HttpURLConnection conn = (HttpURLConnection) _url.openConnection(); // 設置網絡連接的相關參數 // 設置輸入可用 conn.setDoInput(true); // 設置輸出可用 conn.setDoOutput(true); // 設置不使用緩存 conn.setUseCaches(false); // 設置連接超時的時間 - 5s conn.setConnectTimeout(5000); // 設置讀取超時的時間 - 5s conn.setReadTimeout(5000); // 設置HTTP請求的方法 - GET conn.setRequestMethod("GET"); // 設置HTTP請求屬性 - 連接方式:保持 conn.setRequestProperty("Connection", "Keep-Alive"); // 設置HTTP請求屬性 - 字符集:UTF-8 conn.setRequestProperty("Charset", "UTF-8"); // 設置HTTP請求屬性 - 用戶代理 conn.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.3; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0"); // 獲取返回的結果 if (200 == conn.getResponseCode()) {// 判斷狀態碼 BufferedReader br = new BufferedReader(new InputStreamReader( conn.getInputStream())); // 每次讀取一行 String line; while((line = br.readLine()) != null){ result.append(line); } } // 關閉HTTP連接 conn.disconnect(); return result.toString(); } } 以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。
新聞熱點
疑難解答