Android十大主流开源框架使用教程---OKHTTP使用教程

OKHTTP是目前流行的网络开源框架,下面提供使用教程:

主要包括基本的

get,post请求,

带参数的请求

文件上传

文件下载,以及图片的加载


首先,添加OKHTTP的两个依赖

 
  
compile 'com.squareup.okhttp3:okhttp:3.8.0'
compile 'com.squareup.okio:okio:1.5.0'

进行get请求

//创建一个对象,并设置请求时间5秒
OkHttpClient client=new OkHttpClient.Builder().readTimeout(5, TimeUnit.SECONDS).build();
Request request=new Request.Builder().url(url).get().build();
Call call=client.newCall(request);
try {
    //得到返回的数据
    Response response=call.execute();
    JSONObject jsonObject=new JSONObject(response.body().string());
    jsonObject.get("username");
} catch (Exception e) {
    e.printStackTrace();
}

post带参数请求

//创建一个对象,并设置请求时间5秒
OkHttpClient client=new OkHttpClient.Builder().readTimeout(5, TimeUnit.SECONDS).build();
FormBody.Builder formBuilder=new FormBody.Builder();
formBuilder.add("username","123");
RequestBody requestBody=formBuilder.build();
Request request=new Request.Builder().url(url)
        .post(requestBody)
        .build();
Call call=client.newCall(request);
try {
    Response response=call.execute();
    Log.e("rrrr",response.body().toString());
} catch (IOException e) {
    e.printStackTrace();
}

文件上传

OkHttpClient client=new OkHttpClient();
MediaType fileType=MediaType.parse("multipart/form-data");
File file=new File("path");
RequestBody body=RequestBody.create(fileType,file);
Request request=new Request.Builder()
        .url("url")
        .post(body)
        .build();
client.newCall(request).enqueue(new Callback() {
    @Override
    public void onFailure(Call call, IOException e) {
        //
    }

    @Override
    public void onResponse(Call call, Response response) throws IOException {
        //
    }
});

下载图片

public Bitmap gerPic(){
    OkHttpClient client=new OkHttpClient();
    Request request=new Request.Builder().url("url").build();
    try {
        //获取响应体
        ResponseBody body=client.newCall(request).execute().body();
        //获取流
        InputStream inputStream=body.byteStream();
        Bitmap bitmap=BitmapFactory.decodeStream(inputStream);
        return bitmap;
    } catch (IOException e) {
        e.printStackTrace();
    }
    return null;
}

你可能感兴趣的:(Android十大主流开源框架使用教程---OKHTTP使用教程)