zoukankan      html  css  js  c++  java
  • 网络通信框架之okHttp


    主页: https://github.com/square/okhttp


    特点:
    * 支持HTTP/2 和 SPDY
    * 默认支持 GZIP 降低传输内容的大小
    * 支持网络请求的缓存
    * 当网络出现问题时,自动重试一个主机的多个 IP 地址


    请求流程:


    配置: compile 'com.squareup.okhttp3:okhttp:3.2.0'


     使用示例代码:

    public class MainActivity extends AppCompatActivity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            //1. 创建http客户端
            OkHttpClient okHttpClient = new OkHttpClient();
            //2. 创建请求
            Request request = new Request.Builder()
                    .get() //get请求
                    .url("http://www.baidu.com")
                    .build();
            //3. 发起请求
             //同步的请求,耗时操作不推荐使用
             // okHttpClient.newCall().execute();
            //异步请求
            okHttpClient.newCall(request).enqueue(new MyCallback());
        }
    
        private  class MyCallback implements Callback {
            //失败 ,回调方法在子线程中
            @Override
            public void onFailure(Call call, IOException e) {
                //            Toast.makeText(MainActivity.this,"网络请求失败",Toast.LENGTH_SHORT).show();
                showToastInAnyThread("网络请求失败");
            }
            //成功回调 ,回调方法在子线程中
            @Override
            public void onResponse(Call call, Response response) throws IOException {
                String text = response.body().string();
                showToastInAnyThread(text);
            }
        }
    
        public void showToastInAnyThread(final String text){
            runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    Toast.makeText(MainActivity.this,text,Toast.LENGTH_SHORT).show();
                }
            });
        }
    
    }
    
  • 相关阅读:
    50.2 Django 连接MySQL,django orm 数据库(models)操作
    50.1 Django 静态资源配置 static && form表单和 request对象
    JS备忘
    Python 单元测试 生产HTML测试报告
    python 单元测试 执行测试
    pycharm 安装插件
    Python 单元测试 实战演练
    Python 单元测试
    Pycharm 使用备忘
    Python 异常
  • 原文地址:https://www.cnblogs.com/loaderman/p/6445854.html
Copyright © 2011-2022 走看看