微信開發基礎(一)

    我也是纔剛開始微信開發,很差的地方你們多批評。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

相關文章
相關標籤/搜索