使用Volley框架发起网络访问的写法

来源:互联网 发布:大话西游手游抢星软件 编辑:程序博客网 时间:2024/05/15 12:11
Volley的使用步骤:
step 1: 创建一个请求队列
step 2: 创建请求对象
     1)获得字符串类型的内容使用  StringRequest    
     2) 获得图片类型的内容使用 ImageRequest
ImageRequest需要6个参数,分别是:
        i.要加载的图像路径
        ii.加载图片成功后的监听器。在图像获取完毕后,volley会调用监听器的onResponse方法,并把图像作为参数传入
        iii/iv:是否要对获得的原始图像进行压缩。如果都指定0,则不进行任何压缩
        v. 指定图像格式Bitmap.Config
        vi.指定错误时监听器。当加载过程中出现错误,会调用监听器的onErrorResponse方法并传入一个VolleyError对象封装错误信息。


     3)ImageLoader Volley提供的一个图片加载类。内部封装了ImageRequest,并使用缓存机制保存已经加载过的图片。


     4)自定义Request
        写一个WeatherRequest,发起请求,请求结束以后,直接获得WeatherBean对象,作为参数传递到监听器的onResponse方法中。     


step 3: 把step2创建的对象放到step1创建的队列中


示例如下:

public class HttpUtil {

private static RequestQueue queue;

public static void getWeahters(final Context context,String city,final OnLoadWeatherFinishListener listener){

try {
if(queue==null){
queue = Volley.newRequestQueue(context);
}

String encode = URLEncoder.encode(city, "utf8");
String url="http://op.juhe.cn/onebox/weather/query?cityname="+encode+"&key=15b3860417a0875de210d562b0be2ce3";
StringRequest request = new StringRequest(url, new Listener<String>() {


@Override
public void onResponse(String arg0) {
Gson gson = new Gson();
WeatherBean bean = gson.fromJson(arg0, WeatherBean.class);
listener.onLoadFinish(bean);
}
}, new ErrorListener() {


@Override
public void onErrorResponse(VolleyError arg0) {
Toast.makeText(context, arg0.getMessage(), Toast.LENGTH_SHORT).show();
}
});

queue.add(request);
} catch (Exception e) {
e.printStackTrace();
}


}
}

0 0
原创粉丝点击