FastHttpClient 是简易封装 OkHttp 的工具(需要jdk8以上),高效使用http(s) post get 。
1.同步的get
FastHttpClient.get(). url(url). addParams("userName", "icecool"). addParams("password", "111111"). build(). execute();
2.同步的post
FastHttpClient.post(). url(url). addParams("userName", "icecool"). addParams("password", "111111"). build(). execute();
3.异步的get
FastHttpClient.get(). url(url). addParams("userName","icecool"). addParams("password", "111111"). build(). executeAsync(new Callback() { @Override public void onFailure(Call call, Exception e, int id) { //TODO } @Override public void onResponse(Call call,Response response, int id) { try { System.out.println(response.body().string()); } catch (IOException e) { } } });
4.异步的post
FastHttpClient.post(). url(url). addParams("userName","icecool"). addParams("password", "111111"). build(). executeAsync(new Callback() { @Override public void onFailure(Call call, Exception e, int id) { //TODO } @Override public void onResponse(Call call,Response response, int id) { try { System.out.println(response.body().string()); } catch (IOException e) { } } });
5.异步下载文件
FastHttpClient.get(). url("http://e.hiphotos.baidu.com/image/pic/item/faedab64034f78f0b31a05a671310a55b3191c55.jpg"). build().addNetworkInterceptor(new DownloadFileInterceptor(){ @Override public void updateProgress(long downloadLenth, long totalLength, boolean isFinish) { System.out.println("updateProgress downloadLenth:"+downloadLenth+ ",totalLength:"+totalLength+",isFinish:"+isFinish); } }). executeAsync(new DownloadFileCallback("/tmp/tmp.jpg") {//save file to /tmp/tmp.jpg @Override public void onFailure(Call call, Exception e, int id) { e.printStackTrace(); } @Override public void onSuccess(Call call, File file, int id) { super.onSuccess(call, file, id); System.out.println("filePath:"+file.getAbsolutePath()); } @Override public void onSuccess(Call call, InputStream fileStream, int id) { System.out.println("onSuccessWithInputStream"); } }); Thread.sleep(50000);
6.上传文件
byte[] imageContent=FileUtil.getBytes("/tmp/test.png"); response = FastHttpClient.post(). url(url). addFile("file1", "a.txt", "123"). addFile("file2", "b.jpg", imageContent). build(). connTimeOut(10000). execute(); System.out.println(response.body().string());
7.https get
Response response = FastHttpClient.get().url("https://kyfw.12306.cn/otn/"). build() .execute(); System.out.println(response.body().string());
8.https post
Response response = FastHttpClient.post().url("https://kyfw.12306.cn/otn/"). build() .execute(); System.out.println(response.body().string());