AndroidAsync
原文章:http://www.koushikdutta.com/AndroidAsync
AndroidAsync
AndroidAsync是一個(gè)低級別的網(wǎng)絡(luò)協(xié)議庫。如果你在找一個(gè)容易使用,高級別,Android軟件,http請求庫,可查看Ion庫(它建立在AndroidAsync之上)。標(biāo)準(zhǔn)的Android開發(fā)人員對Ion可能更感興趣。
但是如果你在找一個(gè)原生的socket。http 客戶端/服務(wù)器,WebSocket,和Socket。那Android的IO流庫,AndroidAsync就是你要找的。
特點(diǎn):
1. 基于NIO。一個(gè)線程,有回調(diào)驅(qū)動(dòng)。高性能。
2. 所有的操作都返回一個(gè)能取消的Future。
3. Socket 客戶端+ Socket 服務(wù)端。
4. HTTP 客戶端+服務(wù)端。
5. WebSocket 客戶端+服務(wù)端。
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地址得到一個(gè)文件。?
同時(shí)也支持緩存。?
也可以創(chuàng)建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());}});} });
需要上傳多文件表單數(shù)據(jù)?它同樣可以。?
AndroidAsync同樣可以讓你創(chuàng)建簡單的http服務(wù)。?
和WebSocket Servers:?
特點(diǎn):?
所有的API請求都返回Futures。?
Futures同樣可以回調(diào)。?
簡短概括:?
?
http://www.voidcn.com/article/p-gffjglpb-ga.html
總結(jié)
以上是生活随笔為你收集整理的AndroidAsync的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android读取/dev/graphi
- 下一篇: Android截屏方法总结