学习了下老罗的OKHttp 参考泡网和hongyang的okhttp
贴出封装的工具类,测试通过,童鞋们拿去用吧!
使用方法
private OKManager manager;
manager=OKManager.getInstance();
manager.
异步get请求:
1.指定返回JsonString
manager.asyncJsonStringByUrl(json_path, new OKManager.Func1() {
@Override
public void onResponse(String result) {
Log.d(TAG,”>>>::”+result);
}
});
2.指定返回JsonObject
manager.asyncJsonObjectByUrl(json_path, new OKManager.Func4() {
@Override
public void onResponse(JSONObject jsonObject) {
Log.d(TAG,”>>>::”+jsonObject.toString());
}
});
3.指定返回byte []
manager.asyncBytesByUrl(image_path, new OKManager.Func2() {
@Override
public void onResponse(byte[] result) {
}
});
4.返回的结果是bitmap
manager.asyncBitmapByUrl(image_path, new OKManager.Func3() {
@Override
public void onResponse(Bitmap bitmap) {
imageView.setImageBitmap(bitmap);
}
});
post
1.表单提交
Map<String,String> map=new HashMap<String, String>();
map.put("search","Jurassic Park");
manager.sendComplexForm("https://en.wikipedia.org/w/index.php", map, new OKManager.Func1() {
@Override
public void onResponse(String result) {
Log.d(TAG,">>>::"+result);
}
});
2.提交String
String postBody = ""
+ "Releases\n"
+ "--------\n"
+ "\n"
+ " * _1.0_ May 6, 2013\n"
+ " * _1.1_ June 15, 2013\n"
+ " * _1.2_ August 11, 2013\n";
manager.postAsyncString("https://api.github.com/markdown/raw", postBody, new OKManager.Func1() {
@Override
public void onResponse(String result) {
Log.d(TAG,">>>::"+result);
}
});
封装类代码
public class OKManager {
private OkHttpClient client;
private volatile static OKManager manager;
private final String TAG=OKManager.class.getSimpleName();
private Handler handler;
//提交JSON数据
private static final MediaType JSON=MediaType.parse("application/json;charset=utf-8");
//提交字符串
private static final MediaType MEDIA_TYPE_MARKDOWN=MediaType.parse("text/x-markdown;charset=utf-8");
private</