导入

compile 'com.squareup.okhttp3:okhttp:3.3.0'

GET请求

String url = "https://www.baidu.com/";
OkHttpClient okHttpClient = new OkHttpClient();
Request request = new Request.Builder()
.url(url)
.build();
Call call = okHttpClient.newCall(request);
try {
Response response = call.execute();
System.out.println(response.body().string());
} catch (IOException e) {
e.printStackTrace();
}

POST请求

private void DownloadFile() {

        OkHttpClient.Builder client = new OkHttpClient.Builder();
//设置超时
client.connectTimeout(20, TimeUnit.SECONDS).writeTimeout(20, TimeUnit.SECONDS).readTimeout(20, TimeUnit.SECONDS).build(); OkhttpUtil.allowAllSSL(client); //传递的参数通过add连接
RequestBody formBody = new FormBody.Builder().add("key1", value1)
.add("key2", key2).add("key3", key3).build(); okhttp3.Request request = new okhttp3.Request.Builder().url(downloadString).post(formBody).build(); call = client.build().newCall(request);
call.enqueue(new Callback() { //失败的回调
@Override
public void onFailure(Call call, IOException e) { e.printStackTrace(); if (m_pDialog.isShowing()) { AlertText("网络连接超时,请检查您的网络连接。");
}
} //成功的回调
@Override
public void onResponse(Call call, okhttp3.Response response) throws IOException { InputStream is = null;
FileOutputStream fos = null; Headers responseHeaders = response.headers(); for (int i = 0; i < responseHeaders.size(); i++) { if (responseHeaders.name(i).equals("Content-Disposition")) { fileName = new String(responseHeaders.value(i)).substring(21, responseHeaders.value(i).length());
}
} try {
is = response.body().byteStream(); String dir = Environment.getExternalStorageDirectory()
+ "/sss/"; if (FileUtil.makeFolder(dir)) { File file = new File(dir, fileName);
fos = new FileOutputStream(file);
byte[] buf = new byte[1024];
int ch = -1; while ((ch = is.read(buf)) != -1) { fos.write(buf, 0, ch);
} fos.flush(); if (fos != null) { fos.close();
} OpenFile(); } else { AlertText("程序自动试图创建文件夹失败");
} } catch (Exception e) { e.printStackTrace(); if (m_pDialog.isShowing()) { AlertText("您所下载的内容不存在。");
} } finally { try {
if (is != null) is.close(); } catch (IOException e) { e.printStackTrace();
}
try {
if (fos != null) fos.close(); } catch (IOException e) { e.printStackTrace();
}
}
}
});
}

最新文章

  1. 用 Excel 测试“绘制两点间连线”的算法
  2. 七种机器内部排序的原理与C语言实现,并计算它们的比较次数与移动次数。
  3. Sublime Text 技巧
  4. webpack解惑:require的五种用法 (转)
  5. kali安装后的网络设置
  6. jboss性能优化
  7. 数独挑战(codevs 2924)
  8. Silverlight TabItem选中,未选中样式设置
  9. Linux大文件分割split和合并cat使用方法
  10. 第五十九篇、OC录制小视频
  11. Linux防火墙iptables学习笔记(三)iptables命令详解和举例[转载]
  12. The Java™ Tutorials下载地址
  13. ACM比赛
  14. form表单传递下拉框的Value和Text值,不适用Jquery传递
  15. 一段获取app性能指标的py脚本
  16. JVM类加载以及执行的实战
  17. CSS文本超出2行就隐藏并且显示省略号
  18. C语言-最后一次作业
  19. HDU 1560 DNA sequence(DNA序列)
  20. 从零开始学习Java多线程(三)

热门文章

  1. pvcreate vgcreate lvcreate 扩容
  2. 开源的分布式事务框架 springcloud Alibaba Seata 的搭建使用 一次把坑踩完。。。
  3. 『学了就忘』Linux基础命令 — 29、关机和重启
  4. Loadrunner12的下载和安装
  5. ssh密码登录
  6. K8S核心概念之SVC(易混淆难理解知识点总结)
  7. 多线程07.thread-join
  8. xml的语法规则
  9. .net打独立运行环境遇到无法trim遇到的bug
  10. SpringSecurity过滤器原理