Volley请求数据--Get请求和Post请求

步骤:
1,自定义一个类并继承Application类
2,实现以下方法:
public class MyApplication extends Application{
// 建立请求队列
public static RequestQueue queue;

@Override
public void onCreate() {
    super.onCreate();
    queue = Volley.newRequestQueue(getApplicationContext());
}

public static RequestQueue getHttpQueue() {
    return queue;
}

}
3,在Activity中实现Get请求和Post请求:
public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    // GET请求
    VolleyGet();

    // POST请求
    VolleyPost();
}

// 定义POST请求的方法
private void VolleyPost() {
    // 请求地址
    String url = "http://ce.sysu.edu.cn/hope/";

    // 创建StringRequest,定义字符串请求的请求方式为POST,
    StringRequest request = new StringRequest(Request.Method.POST, url, new Response.Listener<String>() {
        // 请求成功后执行的函数
        @Override
        public void onResponse(String s) {
            // 打印出POST请求返回的字符串
            Toast.makeText(MainActivity.this, "POST: " + s, Toast.LENGTH_LONG).show();
        }
    }, new Response.ErrorListener() {
        // 请求失败时执行的函数
        @Override
        public void onErrorResponse(VolleyError volleyError) {

        }
    }){

        // 定义请求数据
        @Override
        protected Map<String, String> getParams() throws AuthFailureError {
            Map<String, String> hashMap = new HashMap<String, String>();
            hashMap.put("phone", "11111");
            return hashMap;
        }
    };
    // 设置该请求的标签
    request.setTag("abcPost");

    // 将请求添加到队列中
    MyApplication.getHttpQueue().add(request);
}

// 定义GET请求的方法
private void VolleyGet() {
    // 定义请求地址
    String url = "http://ce.sysu.edu.cn/hope/";
    StringRequest request = new StringRequest(Request.Method.GET, url, new Response.Listener<String>() {
        @Override
        public void onResponse(String s) {
            // 打印出GET请求返回的字符串
            Toast.makeText(MainActivity.this, s, Toast.LENGTH_LONG).show();
        }
    }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError volleyError) {

        }
    });

    // 设置该请求的标签
    request.setTag("abcGet");

    // 将请求添加到队列中
    MyApplication.getHttpQueue().add(request);
}

}
4,关闭请求在onstop周期方法中操作
@Override
protected void onStop() {
super.onStop();
mRequestQueue.cancelAll(this);
}
5,如果关闭特定的标签的请求自定义onstop方法
// 网络请求标签为”abcGet”
public void onStop() {
super.onStop();
MyApplication.getHttpQueues.cancelAll(“abcGet”);
}
6,注意一定要在列表清单里进行注册自定义的Application类和添加权限

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值