Android中鴻洋封裝的OkHttp框架詳解
阿新 • • 發佈:2019-01-31
1下載並依賴jar包
OKhttp官網:
在這裡下載okhttputils-2_6_2.jar
2加許可權
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"></uses-permission>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
3具體請求
3.1get請求示例
3.2post請求示例private void httpGet() { String url = "http://api.icaipiao123.com/api/v7/social/hotlist?count=10&lottery_key=shuangseqiu&page=1 "; OkHttpUtils .get() .url(url) .build() .execute(new StringCallback() { @Override public void onError(Call call, Exception e, int i) { } @Override public void onResponse(String s, int i) { Log.e("111", ">>>>>" + s); } }); }
3.3檔案下載示例/** * 測試post請求 */ private void httpPost() { String url = "http://www.csdn.net/"; OkHttpUtils .post() .url(url) .addParams("username", "hyman") .addParams("password", "123") .build() .execute(new StringCallback() { @Override public void onError(Call call, Exception e, int i) { } @Override public void onResponse(String s, int i) { Log.e("111", ">>>>>" + s); } }); }
/**
* 檔案下載,是可以下載大檔案的,像視訊,音樂等,
* 這裡下載圖片,只是示範一下
*/
private void httpDownFile(){
String url="http://p.zhangkongshidai.cn/20180425/7bc14bddf464c097af89d9c93536cd5e.jpeg";
OkHttpUtils
.get()
.url(url)
.build()
.execute(
new FileCallBack(Environment.getExternalStorageDirectory().getAbsolutePath(), "zhh.jpeg") {
@Override
public void inProgress(float progress, long total, int id) {
// mProgressBar.setProgress((int) (100 * progress));
}
@Override
public void onError(Call call, Exception e, int i) {
Log.e("111", "onError :" + e.getMessage());
}
@Override
public void onResponse(File file, int i) {
// 檔案儲存的路徑,在根目錄下
Log.e("111", "onResponse :" + file.getAbsolutePath());
}
});
}
3.4多檔案上傳
/**
*
* 多檔案上傳
*/
private void httpUpdata(){
File file = new File(Environment.getExternalStorageDirectory(),"zhh.png");
if(!file.exists()) {
Toast.makeText(MainActivity.this, "檔案不存在", Toast.LENGTH_SHORT).show();
return;
}
Map<String,String>params = new HashMap<>();
params.put("username","zhh");
String url="";
OkHttpUtils.post()
.addFile("file","test.jpg",file)
.url(url)
.params(params)
.build()
.execute(new StringCallback() {
@Override
public void onBefore(Request request, int id) {
super.onBefore(request, id);
}
@Override
public void onAfter(int id) {
super.onAfter(id);
}
@Override
public void inProgress(float progress, long total, int id) {
super.inProgress(progress, total, id);
// mProgressBar.setProgress((int) (100 * progress));
}
@Override
public void onError(Call call, Exception e, int i) {
}
@Override
public void onResponse(String s, int i) {
}
});
}
3.5請求單張圖片
/**
* 請求單張圖片
* 圖片不建議用okhttp
* 用glide
*/
private void httpOnlyImage(){
String url = "http://pic.58pic.com/58pic/15/36/00/73b58PICgvY_1024.jpg";
OkHttpUtils.get()
.url(url)
.build()
.execute(new BitmapCallback() {
@Override
public void onError(Call call, Exception e, int i) {
Log.e("111",""+e.getMessage());
}
@Override
public void onResponse(Bitmap bitmap, int i) {
ivImage.setImageBitmap(bitmap);
}
});
}
原始碼下載:https://download.csdn.net/download/zhaihaohao1/10375418