http請求工具-OkHttp用法
阿新 • • 發佈:2018-04-04
公司 hub roi request 簡單 導入jar包 使用 參數 ref
OKHttp介紹
okhttp是一個第三方類庫,用於android中請求網絡。這是一個開源項目,是安卓端最火熱的輕量級框架,由移動支付Square公司貢獻(該公司還貢獻了Picasso和LeakCanary) 。用於替代HttpUrlConnection和Apache HttpClient(android API23 裏已移除HttpClient)。
okhttp有自己的官網,官網網址:OKHttp官網如果想了解原碼可以在github上下載,地址是:https://github.com/square/okhttp
在AndroidStudio中使用不需要下載jar包,直接添加依賴即可: compile ‘com.squareup.okhttp3:okhttp:3.4.1’
在開發中我們會經常需要用到http請求,這裏簡單介紹一個http請求工具okHttp的用法
1、導入jar包
1 <dependency> 2 <groupId>com.squareup.okhttp3</groupId> 3 <artifactId>okhttp</artifactId> 4 <version>3.9.1</version> 5 </dependency>
2、為了便於以後使用,這裏封裝一個OkHttpUtil的工具類
get請求
1/** 2 * get請求 3 * @param url 請求地址 4 * @return 請求結果 5 */ 6 public String doGet(String url) { 7 OkHttpClient okHttpClient = new OkHttpClient(); 8 Request request = new Request.Builder().url(url).build(); 9 Call call = okHttpClient.newCall(request); 10 try { 11 Response response = call.execute();12 return response.body().string(); 13 } catch (IOException e) { 14 e.printStackTrace(); 15 } 16 return null; 17 }
post請求分為兩種,From表單形式和JSON參數形式
-
Form表單形式
1 /** 2 * 表單形式post請求 3 * @param url 請求地址 4 * @param map post請求參數 5 * @return 請求結果 6 */ 7 public String doPost(String url,Map<String,String> map){ 8 OkHttpClient client = new OkHttpClient(); 9 //構建一個formBody builder 10 FormBody.Builder builder = new FormBody.Builder(); 11 //循環form表單,將表單內容添加到form builder中 12 for (Map.Entry<String,String> entry : map.entrySet()) { 13 String key = entry.getKey(); 14 String value = entry.getValue(); 15 builder.add(key,value); 16 } 17 //構建formBody,將其傳入Request請求中 18 FormBody body = builder.build(); 19 Request request = new Request.Builder().url(url).post(body).build(); 20 Call call = client.newCall(request); 21 //返回請求結果 22 try { 23 Response response = call.execute(); 24 return response.body().string(); 25 } catch (IOException e) { 26 e.printStackTrace(); 27 } 28 return null; 29 }
- JSON參數形式
1 /** 2 * Json body形式的post請求 3 * @param url 請求地址 4 * @return 請求結果 5 */ 6 public String doPost(String url,String json){ 7 OkHttpClient client = new OkHttpClient(); 8 RequestBody body = RequestBody.create(MediaType.parse("application/json; charset=utf-8"), json); 9 Request request = new Request.Builder() 10 .post(body) 11 .url(url). 12 build(); 13 Call call = client.newCall(request); 14 //返回請求結果 15 try { 16 Response response = call.execute(); 17 return response.body().string(); 18 } catch (IOException e) { 19 e.printStackTrace(); 20 } 21 return null; 22 }
http請求工具-OkHttp用法