我也是纔剛開始微信開發,很差的地方你們多批評。java
說到微信開發不得不說的一個地方就是網絡鏈接發送請求,得到返回數據。這個是全部平臺開發的基礎。我這裏用的是HttpURLConnection 來發送請求url地址。 具體以下:緩存
請求分爲 兩類請求:服務器
一、get請求微信
get請求比較簡單,無需設置過多網絡
public static String doGet(String strUrl) throws IOException{ String result = ""; URL url = new URL(strUrl); HttpURLConnection httpUrlConnection = (HttpURLConnection) url.openConnection(); // 設定請求的方法爲"GET",默認是GET httpUrlConnection.setRequestMethod("GET"); // 鏈接 httpUrlConnection.connect(); // 調用HttpURLConnection鏈接對象的getInputStream()函數, // 將內存緩衝區中封裝好的完整的HTTP請求電文發送到服務端。 InputStream inStrm = httpUrlConnection.getInputStream(); // <===注意,實際發送請求的代碼段就在這裏 // 輸入流使用Reader讀取 BufferedReader reader = new BufferedReader(new InputStreamReader(inStrm)); String lines; while ((lines = reader.readLine()) != null) { result += lines +"\n"; } reader.close(); // 斷開鏈接 httpUrlConnection.disconnect(); return result;//最後 獲得請求返回結果result }二、post請求
稍微須要多設置下參數,其餘跟get請求相似
微信開發
public static String doPost(String strUrl,String content) throws IOException{ String result = ""; URL url = new URL(strUrl); HttpURLConnection httpUrlConnection = (HttpURLConnection) url.openConnection(); // 設置是否向httpUrlConnection輸出,由於這個是post請求,參數要放在 // http正文內,所以須要設爲true, 默認狀況下是false; httpUrlConnection.setDoOutput(true); // 設置是否從httpUrlConnection讀入,默認狀況下是true; httpUrlConnection.setDoInput(true); // Post 請求不能使用緩存 httpUrlConnection.setUseCaches(false); // 設定傳送的內容類型是可序列化的java對象 // (若是不設此項,在傳送序列化對象時,當WEB服務默認的不是這種類型時可能拋java.io.EOFException) httpUrlConnection.setRequestProperty("Content-type", "application/x-java-serialized-object"); // 設定請求的方法爲"POST",默認是GET httpUrlConnection.setRequestMethod("POST"); // 鏈接,從上述第2條中url.openConnection()至此的配置必需要在connect以前完成, httpUrlConnection.connect(); // 此處getOutputStream會隱含的進行connect(即:如同調用上面的connect()方法, // 因此在開發中不調用上述的connect()也能夠)。 OutputStream outStrm = httpUrlConnection.getOutputStream(); // 如今經過輸出流對象構建對象輸出流對象,以實現輸出可序列化的對象。 ObjectOutputStream objOutputStrm = new ObjectOutputStream(outStrm); // 向對象輸出流寫出數據,這些數據將存到內存緩衝區中 objOutputStrm.writeObject(content); // 刷新對象輸出流,將任何字節都寫入潛在的流中(些處爲ObjectOutputStream) objOutputStrm.flush(); // 關閉流對象。此時,不能再向對象輸出流寫入任何數據,先前寫入的數據存在於內存緩衝區中, // 在調用下邊的getInputStream()函數時才把準備好的http請求正式發送到服務器 objOutputStrm.close(); // 調用HttpURLConnection鏈接對象的getInputStream()函數, // 將內存緩衝區中封裝好的完整的HTTP請求電文發送到服務端。 InputStream inStrm = httpUrlConnection.getInputStream(); // <===注意,實際發送請求的代碼段就在這裏 // 輸入流使用Reader讀取 BufferedReader reader = new BufferedReader(new InputStreamReader(inStrm)); String lines; while ((lines = reader.readLine()) != null) { result += lines +"\n"; } reader.close(); // 斷開鏈接 httpUrlConnection.disconnect(); return result; }
以上是寫的兩個方法封裝httpUrlConnection處理方法。代碼解釋的很清楚,文字就沒有多說。不懂能夠留言評論。app
剛剛開始博客,你們捧場。
ide