okhttp
一. okhttp协议介绍
二.okhttp完成get请求
三.okhttp完成post请求
2.工具类
一. okhttp协议介绍
okhttp是一个第三方类库,用于android中请求网络。
这是一个开源项目,是安卓端最火热的轻量级框架,由移动支付Square公司贡献(该公司还贡献了Picasso和LeakCanary) 。用于替代HttpUrlConnection和Apache HttpClient(android API23 里已移除HttpClient)。
二.okhttp完成get请求
public void get(String url){
OkHttpClient.Builder budilder=new OkHttpClient.Builder();
budilder.readTimeout(30, TimeUnit.SECONDS);
budilder.connectTimeout(20,TimeUnit.SECONDS);
OkHttpClient client=budilder.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) {
//no ok
// Toast.makeText(MainActivity.this, "嚶嚶嚶", Toast.LENGTH_SHORT).show();
}
@Override
public void onResponse(Call call, Response response) throws IOException {
//ok
String string = response.body().string();
Log.i(TAG, "onResponse: "+string);
// Toast.makeText(MainActivity.this, "嚶嚶嚶"+string, Toast.LENGTH_SHORT).show();
}
});
}
三.okhttp完成post请求、
public void post(String url){
OkHttpClient client=new OkHttpClient.Builder().build();
//上傳的內容
// FormBody.Builder formBody= new FormBody.Builder();
//
// for (String k:body.keySet()){
// formBody.add(k,body.get(k));
// }
//
// FormBody build = formBody.build();
FormBody formBody1=new FormBody.Builder().add("phone","17552730873")
.add("passwd","123").build();
MultipartBody.Builder body2=new MultipartBody.Builder();
body2.setType(MultipartBody.FORM);
MultipartBody builder =
new MultipartBody.Builder().setType(MultipartBody.FORM).addFormDataPart("file","test.mp3", RequestBody.create(MediaType.parse("media/mp3"),new File("/mnt/sdcard/2.jpg"))).build();
final Request request=new Request.Builder().post(formBody1).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().string();
Log.d(TAG, "onResponse: "+ok);
}
});
}
}