目前安卓開發中使用的網路工具為OKhttp,但是okhttp的使用還不是很方便,在okhttp的基礎上再對請求進行封裝會極大的方便網路調用。 下麵直接上代碼。 請求封裝 上面對okhttp的put請求進行了簡單封裝,四個參數分別是 1.請求地址 2.請求頭,以map的形式傳入,如不需要可傳入null ...
目前安卓開發中使用的網路工具為OKhttp,但是okhttp的使用還不是很方便,在okhttp的基礎上再對請求進行封裝會極大的方便網路調用。
下麵直接上代碼。
請求封裝
public class HttpUtil { public static void sendOKHttpRequest(String address, Map<String,String> head,Map<String,String> body,okhttp3.Callback callback){ OkHttpClient client=new OkHttpClient(); Request.Builder builder=new Request.Builder().url(address); if(head!=null&&head.size()>0){ for (Map.Entry<String, String> entry : head.entrySet()) { builder.addHeader(entry.getKey(),entry.getValue()); } } FormBody.Builder formBody = new FormBody.Builder(); if(body!=null&&body.size()>0){ for (Map.Entry<String, String> entry : head.entrySet()) { formBody.add(entry.getKey(),entry.getValue()); } } RequestBody requestBody = formBody.build(); Request request=builder.post(requestBody).build(); client.newCall(request).enqueue(callback); } }
上面對okhttp的put請求進行了簡單封裝,四個參數分別是
1.請求地址
2.請求頭,以map的形式傳入,如不需要可傳入null
3.攜帶參數,同樣以map的形式傳入,如無參數傳入null
4.回調函數
代碼中調用
Map<String,String> body=new HashMap<String, String>(); body.put("userName",loginName); body.put("password",password);
HttpUtil.sendOKHttpRequest(getString(R.string.ip)+"/xxx/Login",null,body,new Callback(){ @Override public void onFailure(Call call, IOException e) { //請求失敗 } @Override public void onResponse(Call call, Response response) throws IOException { final String responseText=response.body().string(); //請求成功 } });
註意Callback為OKhttp下的,引入時需註意。