Android開發中運用okhttp發送網絡請求

最近由於一些緣由從新接觸棄療很久的android,忽然發如今以前的版本中android比較用的比較多的httpclient不能用了…如今的異步訪問方式用起來又感受有點麻煩,而後經一個同窗提醒想起來一個大牛學長以前在項目中用過的okhttp,而後就用了下,其實速度和使用方式仍是很不錯的,可是遇到了一些小問題,在這裏筆記下。android

下載

okhttp的githup地址,能夠看到是支持maven和gradle導入的:
https://github.com/square/okhttp
首頁文檔:
http://square.github.io/okhttp/git

若是使用maven和gradle配置只要按照github頁面的方法將其加入到相關的配置文件裏就好了,若是下載的是jar包,能夠經過androidstudio的
File > Project Structrue > dependencies
而後add file dependence來添加github

這裏須要的包有兩個
okio.jar
okhttp.jarjson

URL paramter參數的的Get、Post請求

官網上已有說明以下,可是我遇到的問題其實主要是發送x-www-form-urlencoded參數的post請求,因此這裏就筆記一下官網的文檔好了…app

GET

OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
      .url(url)
      .build();
Response response = client.newCall(request).execute();
return response.body().string();

POST

public static final MediaType JSON
= MediaType.parse("application/json; charset=utf-8");

OkHttpClient client = new OkHttpClient();

String post(String url, String json) throws IOException {
      RequestBody body = RequestBody.create(JSON, json);
      Request request = new Request.Builder()
          .url(url)
          .post(body)
          .build();
      Response response = client.newCall(request).execute();
      return response.body().string();
}

x-www-form-urlencoded參數的Post請求

OkHttpClient okHttpClient = new OkHttpClient();
RequestBody body = new FormEncodingBuilder()
        .add("user", user)
        .add("password", pwd)
        .build();
Request request = new Request.Builder()
        .url("youurl")
        .post(body)
        .build();
Response response = okHttpClient.newCall(request).execute();
String result = response.body().string();
相關文章
相關標籤/搜索