1.创建RequestQueue对象,定义网络请求队列;
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;
}
}
2.创建XXXRequest对象(XXX代表String,JSON,Image等等),定义网络数据请求的详细过程;
JsonObjectRequest:返回JSONObject对象;
JsonArrayRequest:返回JsonArray对象;
StringRequest:返回String。
public class Main Activity 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/";
// 创建
String Request;
//定义字符串请求的请求方式为POST,
StringRequest request =new StringRequest(
Request.Method.POST
, url
,newResponse.Listener() {
// 请求成功后执行的函数
@Override
public void onResponse(String s){
// 打印出POST请求返回的字符串
Toast.makeText(MainActivity.this,"POST: "+ s, Toast.LENGTH_LONG).show();
}
},newResponse.ErrorListener() {
// 请求失败时执行的函数
@Override
public void onErrorResponse(VolleyError volleyError){
}
}){
// 定义请求数据
@Override
protected Map<String,String> getParams() throws AuthFailureError{
Map<String,String> hashMap =newHashMap<String,String>();
hashMap.put("phone","11111");
return hashMap;
}
};
// 设置该请求的标签
request.setTag("abcPost");
// 将请求添加到队列中
MyApplication.getHttpQueue().add(request);
}
// 定义GET请求的方法
private void Volley Get(){
// 定义请求地址
String url ="http://ce.sysu.edu.cn/hope/";
StringRequest request =newStringRequest(
Request.Method.GET
, url
,newResponse.Listener() {
@Override
public void onResponse(String s){
// 打印出GET请求返回的字符串
Toast.makeText(MainActivity.this, s, Toast.LENGTH_LONG).show();
}
},newResponse.ErrorListener() {
// 请求失败时执行的函数
@Override
public void onErrorResponse(VolleyError volleyError){
}
});
// 设置该请求的标签
request.setTag("abcGet");
// 将请求添加到队列中
MyApplication.getHttpQueue().add(request);
}
}
3.把XXXRequest对象添加到RequestQueue中,开始执行网络请求。