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);
}
};