Okhttp框架的使用
来源:互联网 发布:淘宝宠物店推荐 编辑:程序博客网 时间:2024/05/21 21:41
//添加的权限
<uses-permission android:name="android.permission.INTERNET"/>
//主Activity
/**
* okhttp请求步骤:
* 1.创建okhttpClient对象
* 2.创建Request请求
* 3.执行请求(把请求转换成一个任务,执行任务)
*/
public class MainActivity extends AppCompatActivity {
ImageView imageView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
imageView = (ImageView) findViewById(R.id.imageView);
}
public void onClick(View view) {
switch (view.getId()){
case R.id.get_btn:
getNetString();
break;
case R.id.post_btn:
postNetString();
break;
case R.id.img_btn:
getImagBitmap();
break;
}
}
//主要执行的步骤
private void getImagBitmap() {
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("http://pic.nipic.com/2008-05-26/200852684031634_2.jpg")
.build();
Call call = client.newCall(request);
call.enqueue(new Callback() {
//重写的方法
@Override
public void onFailure(Call call, IOException e) {
}
//得到成功的返回内容自己解析
@Override
public void onResponse(Call call, Response response) throws IOException {
byte[] bytes = response.body().bytes();
final Bitmap bmp = BitmapFactory.decodeByteArray(bytes, 0, bytes.length);
//相当于Handler.post(Runnable对象),此方法在Activity中调用
runOnUiThread(new Runnable() {
@Override
public void run() {
imageView.setImageBitmap(bmp);
}
});
}
});
}
private void postNetString() {
/**
* String baseUrl = http://mrobot.pcauto.com.cn/v2/cms/channels/1?
post提交的字段:pageNo=1&pageSize=20&serialIds=2143,3404&v=4.0.0
*/
OkHttpClient client =new OkHttpClient();
//提交给服务器的请求体内容
RequestBody body =new FormBody.Builder()
.add("pageNo","1")
.add("pageSize","20")
.add("serialIds","2143,3404")
.add("v","4.0.0")
.build();
Request request
= new Request.Builder()
.url("http://mrobot.pcauto.com.cn/v2/cms/channels/1?")
.post(body)
.build();
Call call = client.newCall(request);
call.enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
}
@Override
public void onResponse(Call call, Response response) throws IOException {
Log.e("sxl","==onResponse==="+response.body().string());
}
});
}
public void getNetString() {
OkHttpClient okHttpClient = new OkHttpClient();
//请求携带地址(默认是get请求) 获得请求
Request request = new Request.Builder()
.url("http://a121.baopiqi.com/api/mh/getVideoClassification.php?&appname=%E7%88%B1%E6%83%85%E6%BC%AB%E7%94%BB%E7%B2%BE%E9%80%89&pkgname=com.platform.cartoonl&imei=863191020203140&versionname=1.2.7&page=0&limit=12")
// .url("http://mrobot.pcauto.com.cn/v2/cms/channels/1?pageNo=1&pageSize=20&serialIds=2143,3404&v=4.0.0")
.build();
//一个Call就是一个任务
Call call = okHttpClient.newCall(request);
//同步:同一时刻只有一个任务在进行 execute()
//异步:同一时刻多个任务在执行 enqueue()
call.enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
}
//请求成功
@Override
public void onResponse(Call call, Response response) throws IOException {
Log.e("sxl", "===响应的结果==" + response.body().string());
}
});
}
}
- okhttp框架的使用
- OKHttp框架的使用
- Okhttp框架的使用
- OkHttp框架的简单使用
- okhttp网络框架的使用
- OkHttp网络框架的使用
- Android中OKHttp框架的使用
- okhttp网络请求框架的简单使用
- 【Android - 框架】之OkHttp的使用
- Android中OKHttp框架的使用
- Android网络请求框架的使用okhttp
- OkHttp(第三方框架)的使用
- 网络请求框架okhttp的使用
- Okhttp网络通信框架的使用
- OkHttp网络请求框架的使用
- okHttp开发框架使用
- Okhttp框架缓存使用
- android 开发 - 使用okhttp框架封装的开发框架
- 用单个控件进行轮播
- Java面试题全集(中)
- 纪念我的zadas bug之一
- angular实现商品购物
- java 多线程notify wait 注意事项
- Okhttp框架的使用
- andriod 调用系统电话
- ceph bufferlist
- Swift_延展
- 如何让你的Genymotion支持ARM架构APP
- MVP购物车
- 获取Django所有路由
- Java9的新特性
- Redis主从复制配置