okhttp/volley

okhttp/volley


okhttp
异步:可以直接运行,底层封装了线程
同步:必须要放到子线程中运行,不需要重写接口的方法
get方法
1、okhttp客户端
OkHttpClient client = new OkHttpClient();
2、request请求对象
Request build = new Request.Builder().url(url).get().build();
3、response结果对象
Response response = client.newCall(build).execute();
4、获得结果
String json = response.body().string();

post方法
formBody 放参数
FormBody builder = new FormBody.Builder().add(键,值) .build();
Call call = client.newCall(request);
重写Callback()

volley 适用于频率高的小数据的下载量
StringRequest request = new StringRequest(com.android.volley.Request.Method.GET, 网址,结果监听,错误监听);
RequestQueue requestQueue = Volley.newRequestQueue(context); //添加到队列
requestQueue.add(request);//将请求添加到队列
requestQueue.start();//启动队列

post
重写getParams()
创建HashMap
put参数和对应的值

下载图片
ImageRequest imageRequest = new ImageRequest(网址, 结果监听,宽, 高, Bitmap.Config.RGB_565, 错误监听);
依赖
implementation ‘com.squareup.okhttp3:okhttp:3.12.1’
implementation ‘eu.the4thfloor.volley:com.android.volley:2015.05.28’

okhttpget同步方法

 public void Okthhp_Get(String url){
    Request build = new Request.Builder().url(url).get().build();
    OkHttpClient client = new OkHttpClient();
    try {
        Response response = client.newCall(build).execute();
        if (response.isSuccessful()){
            String json = response.body().string();
            Log.e("####body",json);
        }else{

        }
    } catch (IOException e) {
        e.printStackTrace();
    }
}

okhttppost同步方法

  public void okHttp_post(String url){
        FormBody builder = new FormBody.Builder()
                .add("phone","15148818964")
                .add("passwd","123")
                .build();
        Request request = new Request.Builder().url(url).post(builder).build();
        OkHttpClient client = new OkHttpClient();
        Call call = client.newCall(request);
        try {
            Response execute = call.execute();
            if(execute.isSuccessful()) {
                String string = execute.body().string();
                Log.e("####post",string);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

okhttpget异步方法

  public void asyncGet(String url){
        Request request = new Request.Builder().url(url).build();//获得请求对象
        OkHttpClient client = new OkHttpClient();//客户端对象
        Call call = client.newCall(request);
        call.enqueue(new okhttp3.Callback() {
            @Override
            public void onFailure(Call call, IOException e) {
             Log.e("###","失败");
            }
        @Override
        public void onResponse(Call call, Response response) throws IOException {
            String string = response.body().string();
            Log.e("####sy",string);
        }
    });
}

okhttppost异步方法

 public void asyncPost(String url){
        OkHttpClient client = new OkHttpClient();
        FormBody body = new FormBody.Builder()
                .add("phone","15148818964")
                .add("passwd","123")
                .build();
        Request request = new Request.Builder().url(url).post(body).build();

    Call call = client.newCall(request);
    call.enqueue(new okhttp3.Callback() {
        @Override
        public void onFailure(Call call, IOException e) {

        }
        @Override
        public void onResponse(Call call, Response response) throws IOException {
            String string = response.body().string();
            Log.e("###ybpost",string);
        }
    });
}

volleyget方法

 public void volleyget(String url,Context context){
        RequestQueue requestQueue = Volley.newRequestQueue(context);
        StringRequest request = new StringRequest(com.android.volley.Request.Method.GET, url,listener,errorListener);
        requestQueue.add(request);//将请求添加到队列
        requestQueue.start();
    }
 com.android.volley.Response.Listener<String> listener = new com.android.volley.Response.Listener<String>() {
        @Override
        public void onResponse(String response) {
            Log.e("#####rese",response);
        }
    };

com.android.volley.Response.ErrorListener errorListener =new com.android.volley.Response.ErrorListener() {
    @Override
    public void onErrorResponse(VolleyError error) {

    }
};

volleypost方法

  public void volleyPost(String url,Context context){
    RequestQueue requestQueue = Volley.newRequestQueue(context);
    StringRequest request = new StringRequest(com.android.volley.Request.Method.POST, url,listener,errorListener){
        @Override
        protected Map<String, String> getParams() {

            HashMap<String,String> map = new HashMap<>();
            map.put("phone","15148819630");
            map.put("passwd","123");
            return map;
        }
    };

    requestQueue.add(request);
    requestQueue.start();

}
 com.android.volley.Response.Listener<String> listener = new com.android.volley.Response.Listener<String>() {
        @Override
        public void onResponse(String response) {
            Log.e("#####rese",response);
        }
    };

com.android.volley.Response.ErrorListener errorListener =new com.android.volley.Response.ErrorListener() {
    @Override
    public void onErrorResponse(VolleyError error) {

    }
};

volley图片

 public void volleyImag(String url,Context context){
        RequestQueue requestQueue = Volley.newRequestQueue(context);
        ImageRequest imageRequest = new ImageRequest(url, listener1, 100, 100, Bitmap.Config.RGB_565, errorListener);
        requestQueue.add(imageRequest);
        requestQueue.start();
    }
com.android.volley.Response.Listener<Bitmap> listener1= new com.android.volley.Response.Listener<Bitmap>() {
    @Override
    public void onResponse(Bitmap response) {
        MainActivity.imageView.setImageBitmap(response);
    }
};
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值