OkHttp的相关
来源:互联网 发布:舰队collection 知乎 编辑:程序博客网 时间:2024/04/30 08:55
因为我们现在大部分公司都要用新的工具Android studio 下面 介绍好用的 网络请求OkHttp
1:要用OkHttp 得先导包 包下载地址 okhttp he latest JAR 和okio the latest JAR
废话不多说 看代码
2:一般的get 请求
//创建OkHTTPClient对象
OkHttpClient ok=new OkHttpClient();
//创建一个Request对象
Request re=new Request.Builder().url(path).build();
//开始请求
ok.newCall(re).enqueue(new Callback() {
@Override
public void onFailure(Request request, IOException e) {
}
@Override
public void onResponse(Response response) throws IOException {
// 一:如果先字符串可以的话 就用这个 一行搞定 默认 我是注掉了 因为大多数 都是乱码 所以果断用第 二中
// String str=response.body().toString();
// 二:如果 是乱码之类的 不正常的 就用字节流转换下
InputStream in=response.body().byteStream();
int a;
char[] ch=new char[1024];
//在这里 如果乱码 可以换 gbk utf-8 之类的 切换
InputStreamReader ins=new InputStreamReader(in,"utf-8");
StringBuffer sb=new StringBuffer();
while((a=ins.read(ch))!=-1){
sb.append(new String(ch,0,a));
}
String str=sb.toString();
System.out.print(sb.toString());
Log.d("读取内容是",sb.toString());
}
});
3:post 请求
//创建OkHTTPClient对象
OkHttpClient ok=new OkHttpClient();
//这两行 暂时 没用到过 可以不写 暂时不懂啥意思
// Request request = buildMultipartFormRequest(
// url,new File[]{file},new String[]{fileKey},null);
//请求参数 里边可以放 联网 需要的请求参数 如 key 等
FormEncodingBuilder builder=new FormEncodingBuilder();
builder.add("name","fanaw");
builder.add("key",key);
//创建一个Request对象
Request re=new Request.Builder().url(path).post(builder.build()).build();
//开始请求
ok.newCall(re).enqueue(new Callback() {
@Override
public void onFailure(Request request, IOException e) {
}
@Override
public void onResponse(Response response) throws IOException {
//在这里 直接借用 String 用了
String str=response.body().toString();
System.out.print(sb.toString());
Log.d("读取内容是",sb.toString());
}
});
4: 写多个请求肯定包含大量的重复代码,所以我希望封装后的代码调用是这样的:
一般的 get 请求
OkHttpClientManager.getAsyn("https://www.baidu.com",
new OkHttpClientManager.ResultCallback<String>() {
@Override
publicvoidonError(Request request, Exception e) {
e.printStackTrace();
}
@Override
publicvoidonResponse(String u) {
mTv.setText(u);//注意这里是UI线程
}
});
OkHttpClientManager.postAsyn("http://192.168.1.103:8080/okHttpServer/fileUpload",//new OkHttpClientManager.ResultCallback<String>() { @Override publicvoidonError(Request request, IOException e) { e.printStackTrace(); } @Override publicvoidonResponse(String result) { } },// file,//"mFile",//new OkHttpClientManager.Param[]{ new OkHttpClientManager.Param("username","zhy"), new OkHttpClientManager.Param("password","123")} );
- OkHttp的相关
- OkHttp面试相关知识
- 对Okhttp的封装Okhttp-utils
- OkHttp相关使用和设置缓存
- Android Https相关解析与okhttp
- Android OkHttp相关解析 实践篇
- OkHttp的使用介绍
- OkHttp的简单使用
- OKHttp的简单使用
- android OkHttp的使用
- OkHttp的使用
- okhttp简单的应用
- OkHttp的使用教程
- OkHttp的使用
- OkHttp的使用
- okHttp的用法
- okhttp的简单封装
- 高效的使用okhttp
- Unity3d开发(十五) AudioClip 参数解析
- Android挂断电话代码
- (六)文档对象模型(DOM)(上)
- 《GMTC全球移动技术大会》参会总结
- 我的第一次打字测试
- OkHttp的相关
- 相機预览类
- 台大林轩田·机器学习技法记要
- QT时间日期
- UEditor 富文本向.net后台传值问题解决方案
- 牛客网校招风暴周算法题-回文数列
- AlertDialog的自定义
- 静态数据竞争检测工具之RELAY-安装和使用
- python 标识符