Android 萬能Get請求Json方法

[java]
package com.example.h3c.net; 
 
import java.io.BufferedReader; 
import java.io.IOException; 
import java.io.InputStreamReader; 
import java.net.ConnectException; 
import java.net.HttpURLConnection; 
import java.net.MalformedURLException; 
import java.net.URL; 
 
import android.util.Log; 
 
import com.example.pickride.util.ConstantsTable; 
 
public class HttpConnection { 
    private final int TIMEOUT = 3000;// 設定超時時間  
 
    /**
     * 請求服務器響應
     * 
     * @param requestType
     *            請求類型 requestContent [類型,參數,類型,參數]
     */ 
    public String requestService(String requestType, String… requestContent) { 
        String resultData = ""; 
        InputStreamReader in = null; 
        HttpURLConnection urlConn = null; 
        BufferedReader buffer = null; 
        try { 
            StringBuffer sBuffer = new StringBuffer(); 
            for (int n = 0; n < requestContent.length; n++) { 
                if ((n + 1) % 2 == 0) { 
                    sBuffer.append("=" + requestContent[n] + "&"); 
                } else { 
                    sBuffer.append(requestContent[n]); 
                } 
            } 
            URL url = new URL(ConstantsTable.URI + requestType + "?" + sBuffer); 
 
            if (url != null) { 
                urlConn = (HttpURLConnection) url.openConnection(); 
                urlConn.setConnectTimeout(TIMEOUT);// 設置超時時間  
 
                try { 
                    in = new InputStreamReader(urlConn.getInputStream()); 
                } catch (ConnectException e) { 
                    Log.e(ConstantsTable.LOG_TAG, "服務器宕機瞭…"); 
                    return resultData; 
                } 
                buffer = new BufferedReader(in); 
                String inputLine = null; 
 
                while ((inputLine = buffer.readLine()) != null) { 
                    resultData += inputLine + "\n"; 
                } 
                urlConn.disconnect(); 
                if (ConstantsTable.DEBUG_FLAG) { 
                    Log.d(ConstantsTable.LOG_TAG, resultData); 
                } 
            } 
        } catch (MalformedURLException e) { 
            Log.e(ConstantsTable.LOG_TAG, "域名無法解析"); 
            e.printStackTrace(); 
        } catch (IOException e) { 
            e.printStackTrace(); 
        } finally { 
            try { 
                if (in != null) { 
                    in.close(); 
                } 
                if (buffer != null) { 
                    buffer.close(); 
                } 
            } catch (IOException e) { 
                e.printStackTrace(); 
            } 
        } 
        return resultData; 
    } 

package com.example.h3c.net;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.ConnectException;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;

import android.util.Log;

import com.example.pickride.util.ConstantsTable;

public class HttpConnection {
    private final int TIMEOUT = 3000;// 設定超時時間

    /**
     * 請求服務器響應
     *
     * @param requestType
     *            請求類型 requestContent [類型,參數,類型,參數]
     */
    public String requestService(String requestType, String… requestContent) {
        String resultData = "";
        InputStreamReader in = null;
        HttpURLConnection urlConn = null;
        BufferedReader buffer = null;
        try {
            StringBuffer sBuffer = new StringBuffer();
            for (int n = 0; n < requestContent.length; n++) {
                if ((n + 1) % 2 == 0) {
                    sBuffer.append("=" + requestContent[n] + "&");
                } else {
                    sBuffer.append(requestContent[n]);
                }
            }
            URL url = new URL(ConstantsTable.URI + requestType + "?" + sBuffer);

            if (url != null) {
                urlConn = (HttpURLConnection) url.openConnection();
                urlConn.setConnectTimeout(TIMEOUT);// 設置超時時間

                try {
                    in = new InputStreamReader(urlConn.getInputStream());
                } catch (ConnectException e) {
                    Log.e(ConstantsTable.LOG_TAG, "服務器宕機瞭…");
                    return resultData;
                }
                buffer = new BufferedReader(in);
                String inputLine = null;

                while ((inputLine = buffer.readLine()) != null) {
                    resultData += inputLine + "\n";
                }
                urlConn.disconnect();
                if (ConstantsTable.DEBUG_FLAG) {
                    Log.d(ConstantsTable.LOG_TAG, resultData);
                }
            }
        } catch (MalformedURLException e) {
            Log.e(ConstantsTable.LOG_TAG, "域名無法解析");
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                if (in != null) {
                    in.close();
                }
                if (buffer != null) {
                    buffer.close();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return resultData;
    }
}

 

You May Also Like