ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

每日总结-Day6-Android开发-利用OkHTTP与服务器通信

2019-08-24 21:03:11  阅读:199  来源: 互联网

标签:请求 Day6 Request OkHttpClient Call OkHTTP Android


OkHTTP

OkHTTP是一种Android网络框架,由移动支付Square公司贡献,用于替代HttpUrlConnection和Apache HttpClient(android API23 6.0里已移除HttpClient)。

在Android中通过OkHTTP与服务器端通信。



一、引入架包

Android Studio下在File->Project Structure中引入架包

搜索okhttp并添加如下版本

二、配置权限

在AndroidManifest中添加网络访问权限

<uses-permission android:name="android.permission.INTERNET"></uses-permission>

三、发起Get请求

发起Get请求共分为四步操作

  1. 创建OkHttpClient对象
  2. 创建Request对象
  3. 将Request封装为Call
  4. 请求加入调度
 //requestUrl为请求的地址
public void getRequest(String requestUrl) {
    try {
        //得到OkHttpClient对象
        OkHttpClient mOkHttpClient = new OkHttpClient();
        //构造Request对象
        Request.Builder builder = new Request.Builder();
        Request request = builder.get().url(requestUrl).build();
        //将Request封装为Call
        Call mCall = mOkHttpClient.newCall(request);
        Log.d("outout", "start");
        //开始执行Call
        //Response mResponse= mCall.execute();//同步方法
        mCall.enqueue(new Callback() {//异步执行方法
            @Override
            public void onFailure(Call call, IOException e) {
                //请求失败
                Log.d("outout", "请求失败");
            }
            @Override
            public void onResponse(Call call, Response response) throws IOException {
                //请求成功
                Log.d("outout", "请求成功");
                String result = response.body().string();
                Log.d("outout", result);

               //这里建议使用GSON控件来将Json格式转换为Bean对象储存
            }
        });
    } catch (Exception e) {
        e.printStackTrace();
    }
}

四、其他

处理Get请求,OkHttp还支持Post请求和文件传输等功能。

参考链接

https://lil-xing.top/

标签:请求,Day6,Request,OkHttpClient,Call,OkHTTP,Android
来源: https://www.cnblogs.com/guofoo/p/11406037.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有