easy-okhttp 詳細介紹html
easy-okhttp是對okhttp3上層封裝的網絡框架,支持文件上傳和下載表單提交(文件和一個參數對應多值),鏈式調用,而且默認整合Gson,對返回結果多種轉換,同時還支持HTTPS單向認證和雙向認證等特性。json
okhttp3網絡框架的流行始於Android,可是在Java後端仍然是Apache HttpClient網絡框架,這個框架的缺點在於設計很是的複雜,並且Jar包比較大。所以封裝easy-okhttp網絡框架是下降對網絡操做的難度,更是但願棄用Apache HttpClient,其次也是爲了幫助 okhttp3 的推廣。後端
框架特性數組
框架引入瀏覽器
Maven之下網絡
<dependency> <groupId>com.mzlion</groupId> <artifactId>easy-okhttp</artifactId> <version>1.0.0-Final</version> </dependency>
Gradle之下session
compile 'com.mzlion:easy-okhttp:1.0.7-beta'
用法示例框架
1.普通的GET請求無參數異步
String responseData = HttpClient .get("http://localhost:8080/okhttp-server-test/userInfo/pageSelect") // 請求方式和請求url .execute() .asString();
2.普通的GET請求帶參數post
String responseData = HttpClient .get("http://localhost:8080/okhttp-server-test/userInfo/pageSelect") //請求方式和請求url .queryString("username","mzlion") //設置請求參數 .execute() .asString();
3.POST普通表單提交
String responseData = HttpClient .post("http://localhost:8080/okhttp-server-test/userInfo/create") //請求方式和請求url .param("username","mzlion") // 表單參數 .param("userPwd", "123") // 表單參數 //queryString("queryTime","20160530") //url參數 .execute() .asString(); //formParam()重載方法還支持`Map`
4.POST提交String
String responseData = HttpClient .textBody("http://localhost:8080/okhttp-server-test/userInfo/create") // 請求方式和請求url .json("{\"username\":\"mzlion\",\"userPwd\":\"123\"}") // post提交json //.xml("") //post提交xml //.html("function fun(){}") //post提交html //.charset("utf-8") //設置編碼 .execute() .asString();
5.POST提交二進制文件
String responseData = HttpClient .binaryBody("http://localhost:8080/okhttp-server-test/userInfo/avatar") // 請求方式和請求url .stream(this.getClass().getClassLoader().getResourceAsStream("andy-bao.jpg")) // post提交流 //.file(new File("d:/andy-bao.jpg")) //post提交文件 .contentType(ContentType.IMAGE_JPG) //設置請求內容類型 .execute() .asString(); //ContentType內置常見的MIME類型,基本上不用本身建立了
6.POST表單提交含文件上傳
String responseData = HttpClient .formDataPost("http://localhost:8080/okhttp-server-test/userInfo/createWithFile") //請求方式和請求url .param("userName", "test") .param("userPwd", "123456") .param("nickName", "Test") .param("realName", "測試") .param("hobby", "測試,就愛測試") .param("avatarFile", this.getClass().getClassLoader().getResourceAsStream("andy-bao.jpg"), "andy-bao.jpg") //.formParam("avatarFile", this.getClass().getClassLoader().getResourceAsStream("andy-bao.jpg"), "andy-bao.jpg") .execute() .asString(); //formParam()重載方法還支持`Map`
7.自定義簽名網站https訪問
>自簽名網站htts訪問處理方式很是簡單,首先拿到客戶端的簽名證書,通常經過瀏覽器就能夠導出xxx.cer證書了。而後將拿到的證書文件拷貝到本身的項目中,而後按照以下方式調用或設置。
String responseData = HttpClient.get() //設置請求方式 .url("https://kyfw.12306.cn/otn/") //設置請求地址 .readTimeout(30000) //覆蓋設置,讀取超時時間 .https(this.getClass().getClassLoader().getResourceAsStream("SRCA.cer")) .execute() //執行 .asString();