1下载并依赖jar包
OKhttp官网:
在官网中下载
okhttp-3.10.0.jar
okio-1.14.0.jar
这两个包是okhttp用的基础包,是必须使用的。
OkHttp鸿阳的封装
https://github.com/hongyangAndroid/okhttputils
在这里下载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请求示例
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.2post请求示例
/** * 测试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); } }); }3.3文件下载示例
/** * 文件下载,是可以下载大文件的,像视频,音乐等, * 这里下载图片,只是示范一下 */ 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); } }); }源码下载: