整理了好一陣子終於覺得可以將這個專案釋出見人了XD
不過註解以及例外說明現處於中英文混雜狀態中,不知有無英文強者願意協助翻譯@@
此文件會持續更新…
下載(Download)
https://github.com/mosil/Android-MosilWeb
說明(Description)
MosilWeb Library 讓 Android 開發者可以透過此 library 取得與 Web API 串接以及相關資源之用。
提供 GET、POST、HTTP以及HTTPS四種主要連線方式,使用方式也只要定義物件後設定好連線網址,再根據該 API 所需要的連線方式給予相關參數即可。
MosilWeb Library 採用 MIT 授權。
若是有什麼使用上的問題,以及遭遇因為此 Library 所發生的例外情形,歡迎在下方回應處留言回報!
版本紀錄(Version)
-
2013/02/26
0.1.1 將 Response 的結果,改到執行完連線後,馬上取出取中的結果字串
-
2013/02/16
0.1.0 Beta
專案架構(Structure)
- src\biz.mosil.webtools\MosilWeb – 主程式
- src\biz.mosil.webtools\MosilWebConf – 設定檔
- src\biz.mosil.webtools\MosilSSLSocketFactory – SSL 所需之物件
- res\values\strings.xml
- res\values-zh-rTW\string.xml
使用說明(Documentation)
- 初始建構(Initialization)
- 轉換參數(Parse Parameter)
- 設定參數(Config)
- 連線與取得結果(Connect and Response)
- 問題排除(Exception)
初始建構(Initialization)
MosilWeb 物件初始化以及一開始要記得先設定欲連結的網址。
1 2 3 4 |
//Construct MosilWeb mosilWeb = new MosilWeb(context); //Set url mosilWeb.setUrl("your host", "your path or method", ...); |
-
setUrl(String _hostname, String... _path)
- hostname: 網址。
請注意,不要加上 “http://” 或是 “https://”。 - path: 路徑或是方法。
請注意,每個參數要加上 “/”。 - Example:
- setUrl("mosil.biz", "/mypath", "/mosildata.php");
- setUrl("mosil.biz", "/mypath/mosildata.php");
- Error Example:
- setUrl(“
http://mosil.biz”, “/mypath”, “/mosildata.php”);
Don’t add “http://” at prefix. - setUrl(“mosil.biz”, “
mypath“, “/mosildata.php”);
Need prefix “/”→””/mypath”
- setUrl(“
- hostname: 網址。
連線與取得結果(Connect and Response)
這個 library 提供了四種連線的方式: GET 、 POST 、 HTTP 以及 HTTPS 。執行完畢最後再以 getResponse() 取得回傳的結果字串。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
//Use GET mosilWeb.actGet("query string"); //Use POST mosilWeb.actPost(ContentType, "post data"); //Use HTTP mosilWeb.actHttp("post data", "query string"); //Use HTTPS mosilWeb.actHttps("post data", "query string"); //Get Response mosilWeb.getResponse(); //String: The result string of response when Http Status Code is OK(200) mosilWeb.getResponseStatus(); //Integer: Http Status |
設定參數(Config)
MosilWeb Library 的主要參數都存放在 src/biz/mosil/webtools/MosilWebConf.java 。若有調整的需求,再請各位開發者自行去設定。
- Port
-
HTTP_PORT
HTTP 的連線埠號(Port),預設值為 80 。 -
SSL_PORT
HTTPS 的連線埠號(Port),預設值為 443 。
-
HTTP_PORT
- Connect time
-
CONNECT_TIME
連線逾時,預設值是 10000 ,單位是毫秒(ms)。 -
SOCKET_TIME
Socket 逾時,預設值是 20000 ,單位是毫秒(ms)。
-
CONNECT_TIME
- Header
-
HEADER_ACCEPT
同意接受的格式(MIME-types)。
"application/xml,application/xhtml+xml,text/html;q=0.9, text/plain;q=0.8,image/png,*/*;q=0.5,application/youtube-client"
-
HEADER_ACCEPT
- Content Type
這是一個列舉(Enumeration)型別的變數,在這邊是提供當採用 POST 連線所傳遞的資料之格式。- Json
傳遞 Json 格式。 "application/json" - Encode
傳遞查詢字串格式。 "application/x-www-form-urlencoded"
- Json
轉換參數(Parse Parameter)
將傳遞予 API 溝通用的參數轉換成 Query String 格式或是 JSON 格式。
1 2 3 4 |
//Parse parameter to Query String MosilWeb.parseToQueryString(Map<String, Object>); //Parse parameter to JSON MosilWeb.parseToJsonString(Map<String, Object>); |
- 傳入參數皆為 Map<String, Object> 物件
- Example
123456789Map<String, Object> param = new HashMap<String, Object>();param.put("act", "getData");param.put("no", 10);MosilWeb.parseToQueryString(param);//Result: act=getData&no=10MosilWeb.parseToJsonString(param);//Result: {"act":"getData", "no":10}
問題排除(Exception)
-
java.net.UnknownHostException: Unable to resolve host “<URL HOST>”: No address associated with hostname
請在 AndroidManifest.xml 裡的 <manifest> 標籤中加入
1 |
<uses-permission android:name="android.permission.INTERNET" /> |