一. okhttp协议介绍
okhttp是一个第三方类库,用于android中请求网络。
二.okhttp完成get请求
public void get(String url){
OkHttpClient.Builder builder=new OkHttpClient.Builder();
builder.readTimeout(30, TimeUnit.SECONDS);//读取超时
builder.connectTimeout(20,TimeUnit.SECONDS);//连接超时
OkHttpClient client=builder.build();//获得一个客户端对象
//请求对象
Request request=new Request.Builder().get().url(url).build();
Call call=client.newCall(request);
call.enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
//失败
}
@Override
public void onResponse(Call call, Response response) throws IOException {
//成功
String json = response.body().toString();
// Toast.makeText(MainActivity.this,"真刺激",Toast.LENGTH_SHORT).show();
Log.i("TAG", "onResponse: 你好我是大傻子");
}
});
}
三.okhttp完成post请求
public void post(HashMap<String,String> body,String url){//map.keyset():所有键的集合 values();所有值的集合
OkHttpClient client=new OkHttpClient.Builder().build();
//表单体(放上传的内容)
FormBody formBody=new FormBody.Builder().add("name","lgt").add("pas","123").build();
//上传文件
MultipartBody.Builder mBuilder=new MultipartBody.Builder().setType(MultipartBody.FORM)
.addFormDataPart("file","a1705.mp4",RequestBody.create(MediaType.parse("media/mp4"),new File("/mnt/sdcard/a1705.mp4")));
Request request=new Request.Builder().post(formBody).url(url).build();
Call call=client.newCall(request);
call.enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
//上传失败
}
@Override
public void onResponse(Call call, Response response) throws IOException {
//上传成功
String ok = response.body().toString();
Log.i("TAG", "onResponse: 结果是"+ok);
}
});
}
技能效果
点击GER
点击POST