android:OKHttp的使用
16lz
2021-01-26
1.之前学习了两种基于http访问服务器的方法,一种是HttpURLConenction,一种是Apache下的HttpClient,说实话,这两种方法操作起来都不是很简单明了,所以当前首选的网络通信库是由Square公司开发的OKHttp
2.OKHttp的使用方法
2-1:导入(在gradle的依赖项中进行导入)
implementation 'com.squareup.okhttp3:okhttp:3.2.0'
dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation 'com.android.support:appcompat-v7:27.1.1' implementation 'com.android.support.constraint:constraint-layout:1.1.3' testImplementation 'junit:junit:4.12' androidTestImplementation 'com.android.support.test:runner:1.0.2' androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2' implementation 'com.squareup.okhttp3:okhttp:3.2.0'}
2-2:注意在AndroidManifest中添加网络许可
2-3:get方法(构造请求+发送请求+处理反馈信息 )
注:子线程中实现该操作
private void doGet(String s) { final String getUrl=urlAdress+method+s;// new Thread(new Runnable() { @Override public void run() { Request request=new Request.Builder().url(getUrl).build();//构造请求 //开始发送请求 try { //实现同步请求 Response response=client.newCall(request).execute();//发送请求,得到反馈信息Response if(response.isSuccessful()){ Log.d("MSG",response.body().string());//打印反馈信息 }else{ Log.d("test","get failed");//服务器返回码不正确,发送信息失败 } } catch (IOException e) { e.printStackTrace(); } } }).start(); }}
2-4:post方法
(post方法的关键是构建键值对(以key-value的形式),相较于get方法而言,所有的信息是以流的形式进行发送请求参数,所以这里封装了FormBody类进行请求的书写,在FormBody中构建键值对)
private void doPost(final String s) { new Thread(new Runnable() { @Override public void run() { //通过构造请求参数 FormBody formBody=new FormBody.Builder().add("***","***").build();//构建好了参数(key value键值对) //构造完整请求 Request request=new Request.Builder().url(urlAdress+method).post(formBody).build();//向服务 //采用异步响应 //发送信息 client.newCall(request).enqueue(new Callback() { @Override public void onFailure(Call call, IOException e) { Log.d("test","post failed"); } @Override public void onResponse(Call call, Response response) throws IOException { Log.d("test",response.body().string()); } }); } }).start(); }
更多相关文章
- Android(安卓)Window与WindowManager 理解与源码分析
- Android倒计时神器(CountDownTimer)
- Android复习笔记(6) -BrodCastReceiver (广播接收者
- android 关于Toast重复显示解决方法
- .Net程序员玩转Android开发---(20)Android绑定服务
- linux chrome运行android应用方法
- Android(安卓)ViewRootImpl 解析
- Android(安卓)Studio Mac常用快捷键
- js判断移动端是否安装某款app的多种方法