HttpHelper

public class HttpHelper
extends Object implements IHttpHelper

java.lang.Object
   ↳ com.android.tradefed.util.net.HttpHelper


包含用於提出 HTTP 要求的輔助方法

摘要

巢狀類別

class HttpHelper.RequestRunnable

使用 IRunUtil#runEscalatingTimedRetry(long, long, long, long, IRunnableResult) 提出要求的可執行項目。 

公用建構函式

HttpHelper()

公用方法

String buildParameters(MultiMap<String, String> paramMap)

建立編碼的參數字串。

String buildUrl(String baseUrl, MultiMap<String, String> paramMap)

建構完整的編碼網址要求字串。

HttpURLConnection createConnection(URL url, String method, String contentType)

建立至指定網址的連結。

HttpURLConnection createJsonConnection(URL url, String method)

建立連線至指定網址,以便傳遞 JSON 資料。

HttpURLConnection createXmlConnection(URL url, String method)

建立連線至指定網址,以便傳遞 XML 資料。

void doGet(String url, OutputStream outputStream)

針對特定網址執行 GET HTTP 要求方法,並將結果串流至 ERROR(/OutputStream)

String doGet(String url)

針對指定網址執行 GET HTTP 要求方法,並以 String 的形式傳回。

void doGetIgnore(String url)

針對指定網址執行 GET 作業,並忽略指定網址參數的結果。

void doGetIgnoreWithRetry(String url)

執行 {doGetIgnore(String)} 失敗時重試。

String doGetWithRetry(String url)

失敗時會重試 {doGet(String)

String doPostWithRetry(String url, String postData)

針對指定網址執行 POST HTTP 要求方法,並以 String 的形式傳回,在失敗時重試。

String doPostWithRetry(String url, String postData, String contentType)

針對指定網址執行 POST HTTP 要求方法,並以 String 的形式傳回,在失敗時重試。

int getInitialPollInterval()

取得初始輪詢時間間隔 (以毫秒為單位)。

int getMaxPollInterval()

以毫秒為單位取得最大輪詢間隔。

int getMaxTime()

取得嘗試要求的時間上限 (以毫秒為單位)。

int getOpTimeout()

以毫秒為單位取得作業逾時時間。

IRunUtil getRunUtil()

取得要使用的 IRunUtil

void setInitialPollInterval(int time)

以毫秒為單位設定初始輪詢間隔。

void setMaxPollInterval(int time)

以毫秒為單位設定初始輪詢間隔。

void setMaxTime(int time)

以 ms 為單位,設定繼續嘗試要求的時間上限。

void setOpTimeout(int time)

設定作業逾時時間 (以毫秒為單位)。

公用建構函式

HttpHelper

public HttpHelper ()

公用方法

buildParameters

public String buildParameters (MultiMap<String, String> paramMap)

建立編碼的參數字串。

參數
paramMap MultiMap:網址參數

傳回
String 已編碼的參數字串

buildUrl

public String buildUrl (String baseUrl, 
                MultiMap<String, String> paramMap)

建構完整的已編碼網址要求字串。

參數
baseUrl String:基準網址

paramMap MultiMap:網址參數

傳回
String 已建構的網址

createConnection

public HttpURLConnection createConnection (URL url, 
                String method, 
                String contentType)

建立至指定網址的連結。

參數
url URL:要連線的 ERROR(/URL)

method String:HTTP 要求方法。例如 GET 或 POST。

contentType String:內容類型。例如「text/html」。

傳回
HttpURLConnection HttpURLConnection

createJsonConnection

public HttpURLConnection createJsonConnection (URL url, 
                String method)

建立連線至指定網址,以便傳遞 JSON 資料。

參數
url URL:要連線的 ERROR(/URL)

method String:HTTP 要求方法。例如 GET 或 POST。

傳回
HttpURLConnection ERROR(/HttpURLConnection)

createXmlConnection

public HttpURLConnection createXmlConnection (URL url, 
                String method)

建立連線至指定網址,以便傳遞 XML 資料。

參數
url URL:要連線的 ERROR(/URL)

method String:HTTP 要求方法。例如 GET 或 POST。

傳回
HttpURLConnection ERROR(/HttpURLConnection)

doGet

public void doGet (String url, 
                OutputStream outputStream)

針對指定網址執行 GET HTTP 要求方法,並將結果串流至 ERROR(/OutputStream)

參數
url String:網址

outputStream OutputStream:回應資料串流

doGet

public String doGet (String url)

針對指定網址執行 GET HTTP 要求方法,並以 String 的形式傳回。

由於遠端內容會載入至記憶體,因此此方法僅適用於相對較小的資料大小。

參考資料:

參數
url String:網址

傳回
String String 遠端內容

擲回
IHttpHelper.DataSizeException

doGetIgnore

public void doGetIgnore (String url)

針對特定網址執行 GET,並使用指定的網址參數來忽略結果。

參數
url String:網址

doGetIgnoreWithRetry

public void doGetIgnoreWithRetry (String url)

執行 {doGetIgnore(String)} 失敗時重試。

參數
url String:網址

doGetWithRetry

public String doGetWithRetry (String url)

失敗時會重試 {doGet(String)

參數
url String:網址

傳回
String String 遠端內容

擲回
IHttpHelper.DataSizeException

doPostWith 重試

public String doPostWithRetry (String url, 
                String postData)

針對指定網址執行 POST HTTP 要求方法,並以 String 的形式傳回,在失敗時重試。

由於遠端內容會載入至記憶體,因此此方法僅適用於相對較小的資料大小。

參數
url String:網址

postData String:連線建立後要發布的資料

傳回
String String 遠端內容

擲回
IHttpHelper.DataSizeException

doPostWithRetry

public String doPostWithRetry (String url, 
                String postData, 
                String contentType)

針對指定網址執行 POST HTTP 要求方法,並以 String 的形式傳回,在失敗時重試。

由於遠端內容會載入至記憶體,因此此方法僅適用於相對較小的資料大小。

參數
url String:網址

postData String:連線建立後要發布的資料

contentType String:內容類型。例如「text/html」。

傳回
String String 遠端內容

擲回
IHttpHelper.DataSizeException

getInitialPollInterval

public int getInitialPollInterval ()

以毫秒為單位取得初始輪詢間隔。

傳回
int

getMaxPollInterval

public int getMaxPollInterval ()

以毫秒為單位取得最大輪詢間隔。

傳回
int

getMaxTime

public int getMaxTime ()

取得持續嘗試要求的最大時間 (以毫秒為單位)。

傳回
int

getOpTimeout

public int getOpTimeout ()

取得作業逾時時間 (以毫秒為單位)。

傳回
int

getRunUtil

public IRunUtil getRunUtil ()

取得 IRunUtil 即可使用。公開,方便單元測試模擬。

傳回
IRunUtil

setInitialPollInterval

public void setInitialPollInterval (int time)

以毫秒為單位設定初始輪詢間隔。

參數
time int

setMaxPollInterval

public void setMaxPollInterval (int time)

以毫秒為單位設定初始輪詢間隔。

參數
time int

setMaxTime

public void setMaxTime (int time)

設定嘗試要求的時間上限 (以毫秒為單位)。

參數
time int

setOpTimeout

public void setOpTimeout (int time)

以毫秒為單位設定作業逾時時間。

參數
time int