AndroidAsync
原文章:http://www.koushikdutta.com/AndroidAsync
AndroidAsync
 AndroidAsync是一個低級別的網絡協議庫。如果你在找一個容易使用,高級別,Android軟件,http請求庫,可查看Ion庫(它建立在AndroidAsync之上)。標準的Android開發人員對Ion可能更感興趣。
 但是如果你在找一個原生的socket。http 客戶端/服務器,WebSocket,和Socket。那Android的IO流庫,AndroidAsync就是你要找的。
 特點:
 1. 基于NIO。一個線程,有回調驅動。高性能。
 2. 所有的操作都返回一個能取消的Future。
 3. Socket 客戶端+ Socket 服務端。
 4. HTTP 客戶端+服務端。
 5. WebSocket 客戶端+服務端。
 6. Socket.IO 客戶端。
 下載:
 下載最新的jar文件(https://search.maven.org/remote_content?g=com.koushikdutta.async&a=androidasync&v=LATEST )或者通過Maven抓取。
 ?
 Gradle配置:
?
?
dependencies {compile 'com.koushikdutta.async:androidasync:2.+' }?
 下載url地址返回字符串類型
 從url地址下載得到JSON串。
?
?
// url is the URL to download. AsyncHttpClient.getDefaultInstance().getJSONObject(url, new AsyncHttpClient.JSONObjectCallback() {// Callback is invoked with any exceptions/errors, and the result, if available.@Overridepublic void onCompleted(Exception e, AsyncHttpResponse response, JSONObject result) {if (e != null) {e.printStackTrace();return;}System.out.println("I got a JSONObject: " + result);} });
 或者得到JSONArrays。
?
?
// url is the URL to download. AsyncHttpClient.getDefaultInstance().getJSONArray(url, new AsyncHttpClient.JSONArrayCallback() {// Callback is invoked with any exceptions/errors, and the result, if available.@Overridepublic void onCompleted(Exception e, AsyncHttpResponse response, JSONArray result) {if (e != null) {e.printStackTrace();return;}System.out.println("I got a JSONArray: " + result);} });
 下載url地址得到一個文件。?
 同時也支持緩存。?
 也可以創建Web sockets:
?
?
AsyncHttpClient.getDefaultInstance().websocket(get, "my-protocol", new WebSocketConnectCallback() {@Overridepublic void onCompleted(Exception ex, WebSocket webSocket) {if (ex != null) {ex.printStackTrace();return;}webSocket.send("a string");webSocket.send(new byte[10]);webSocket.setStringCallback(new StringCallback() {public void onStringAvailable(String s) {System.out.println("I got a string: " + s);}});webSocket.setDataCallback(new DataCallback() {public void onDataAvailable(DataEmitter emitter, ByteBufferList byteBufferList) {System.out.println("I got some bytes!");// note that this data has been readbyteBufferList.recycle();}});} });?
?
AndroidAsync也支持socket.io(0.9.x版本)
?
SocketIOClient.connect(AsyncHttpClient.getDefaultInstance(), "http://192.168.1.2:3000", new ConnectCallback() {@Overridepublic void onConnectCompleted(Exception ex, SocketIOClient client) {if (ex != null) {ex.printStackTrace();return;}client.setStringCallback(new StringCallback() {@Overridepublic void onString(String string) {System.out.println(string);}});client.on("someEvent", new EventCallback() {@Overridepublic void onEvent(JSONArray argument, Acknowledge acknowledge) {System.out.println("args: " + arguments.toString());}});client.setJSONCallback(new JSONCallback() {@Overridepublic void onJSON(JSONObject json) {System.out.println("json: " + json.toString());}});} });
 需要上傳多文件表單數據?它同樣可以。?
 AndroidAsync同樣可以讓你創建簡單的http服務。?
 和WebSocket Servers:?
 特點:?
 所有的API請求都返回Futures。?
 Futures同樣可以回調。?
 簡短概括:?
?
http://www.voidcn.com/article/p-gffjglpb-ga.html
總結
以上是生活随笔為你收集整理的AndroidAsync的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: Android读取/dev/graphi
- 下一篇: Android截屏方法总结
