首先要使用Volley,需要先创建一个请求队列,这在里我把请求队列写成全局的,方便以后调用。
先创建类MyApplication,继承Application,然后再MyApplication中实例化一个请求队列,并且获取全局的请求队列方便我们在添加请求时调用。
public class MyApplication extends Application{
public static RequestQueue queue;
@Override
public void onCreate() {
// TODO Auto-generated method stub
super.onCreate();
//实例化这个请求队列
queue = Volley.newRequestQueue(getApplicationContext());
}
// 获取全局的请求队列,方便我们在添加请求时调用
public static RequestQueue getHttpQueue(){
return queue;
}
}
首先是Volley的get请求方法,首先创建一个请求队列:
private void volleyget() {
//建立一个请求对立
//第一个参数为请求方式,第二个为我们请求的URL,第三个为请求的回调,第四个参数为我们请求失败索要回调的方法
String url = "http://apis.juhe.cn/cnoil/oil_city?e447432dcf407df911152fa90a067543";
StringRequest request = new StringRequest(Method.GET, url, new Listener<String>() {
public void onResponse(String arg0) {
//请求成功服务器返回的内容
Toast.makeText(MainActivity.this, "数据为:"+arg0, Toast.LENGTH_SHORT).show();
}
}, new Response.ErrorListener() {
public void onErrorResponse(VolleyError arg0) {
// 请求失败服务器返回的内容
Toast.makeText(MainActivity.this, "图片上传失败", Toast.LENGTH_SHORT).show();
}
});
//当我们想取消这个请求的时候可以通过这个标签进行取消
request.setTag("GET");
//将我们的请求添加到队列中
MyApplication.getHttpQueue().add(request);
}
Post请求
private void volleypost() {
String url= "http://apis.juhe.cn/cnoil/oil_city?";
StringRequest request = new StringRequest(Method.POST, url, new Listener<String>() {
public void onResponse(String arg0) {
// 请求成功的回调方法
Toast.makeText(MainActivity.this, "数据为:"+arg0, Toast.LENGTH_SHORT).show();
}
}, new Response.ErrorListener() {
public void onErrorResponse(VolleyError arg0) {
// 请求失败的回调方法
Toast.makeText(MainActivity.this, "图片上传失败", Toast.LENGTH_SHORT).show();
}
}){
protected java.util.Map<String,String> getParams() throws com.android.volley.AuthFailureError {
//POST请求所需的参数
HashMap<String, String> map = new HashMap<String, String>();
map.put("dtype", "%E5%8C%97%E4%BA%AC&key=e447432dcf407df911152fa90a067543");
return map;
}
};
request.setTag("POST");
MyApplication.getHttpQueue().add(request);
}
请求的销毁,在onStop中取消请求队列
@Override
protected void onStop() {
// TODO Auto-generated method stub
super.onStop();
//获取请求队列,根据TAG取消队列
MyApplication.getHttpQueue().cancelAll("POST");
MyApplication.getHttpQueue().cancelAll("GET");
}
上面的接口应该会有点问题,但是,问题不大,去聚合数据重新找接口吧。
[Demo免积分下载](http://download.csdn.net/detail/xdx1399513637/9458279%20Demo%E4%B8%8B%E8%BD%BD%E5%9C%B0%E5%9D%80%EF%BC%8C%E5%85%8D%E7%A7%AF%E5%88%86)