Volley网络框架
1.Volley网络请求队列
Volley请求都是基于请求队列的,开发者只要把请求放在请求队列中就可以了,请求队列会依次进行,一般情况下,一个应用程序如果网络请求不是特别频繁
完全可以只有一个请求队列。
2.StringRequest:接收String类型的返回值
点击登录按钮实现登录功能。
private void InitView() {
username=findViewById(R.id.usenrame);
password=findViewById(R.id.password);
button=findViewById(R.id.login);
mQueue=Volley.newRequestQueue(getApplicationContext());
}
public void Login(View view) {
final String UserName=username.getText().toString();
final String PassWord=password.getText().toString();
StringRequest request=new StringRequest(Request.Method.POST, Url + "LoginServlet", new Response.Listener<String>() {
@Override
public void onResponse(String s) {
if(s.equals("success")){
Message message=new Message();
message.what=0x11;
handler.sendMessage(message);
}else{
Message message=new Message();
message.what=0x12;
handler.sendMessage(message);
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError volleyError) {
}
}){
@Override
protected Map<String, String> getParams() throws AuthFailureError {
HashMap<String,String> map=new HashMap<>();
map.put("UserName",UserName);
map.put("PassWord",PassWord);
return map;
}
};
mQueue.add(request);
}
3.JsonObjectRequest()的使用方法
public void Login(View view) {
String UserName=username.getText().toString();
String PassWord=password.getText().toString();
HashMap<String,String> map=new HashMap<>();
map.put("UserName",UserName);
map.put("PassWord",PassWord);
JSONObject json=new JSONObject(map);
JsonObjectRequest request=new JsonObjectRequest(Request.Method.POST,Url + "LoginServlet", json, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject jsonObject) {
try {
String res=jsonObject.getString("res");
System.out.println(res);
if(res.equals("success")){
Message message=new Message();
message.what=0x11;
handler.sendMessage(message);
}else{
Message message=new Message();
message.what=0x12;
handler.sendMessage(message);
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError volleyError) {
volleyError.printStackTrace();
}
}){
@Override
protected Map<String, String> getParams() throws AuthFailureError {
return super.getParams();
}
};
mQueue.add(request);
}
Handler handler=new Handler(){
@Override
public void handleMessage(Message msg) {
switch (msg.what){
case 0x11:
Toast.makeText(getApplicationContext(),"登录成功" ,Toast.LENGTH_LONG ).show();
break;
case 0x12:
Toast.makeText(getApplicationContext(),"登录失败" ,Toast.LENGTH_LONG ).show();
break;
}
}
};