在框架中,一般建立volly的管理类,进行request的请求。
package com.qqs.fha.util;
import android.app.ActivityManager;
import android.content.Context;
import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.toolbox.HttpClientStack;
import com.android.volley.toolbox.ImageLoader;
import com.android.volley.toolbox.Volley;
import org.apache.http.impl.client.AbstractHttpClient;
import org.apache.http.impl.client.DefaultHttpClient;
public class RequestManager {
private static RequestQueue mRequestQueue;
private static ImageLoader mImageLoader;
private static AbstractHttpClient mHttpClient;
private RequestManager() {
// no instances
}
public static void init(Context context) {
mHttpClient = new DefaultHttpClient();
//传入HttpClientStack,才能保证cookies与服务器交互,默认volley无cookies支持。
mRequestQueue=Volley.newRequestQueue(context, new HttpClientStack(mHttpClient));
}
public static RequestQueue getRequestQueue() {
if (mRequestQueue != null) {
return mRequestQueue;
} else {
throw new IllegalStateException("RequestQueue not initialized");
}
}
public static void addRequest(Request<?> request, Object tag) {
if (tag != null) {
request.setTag(tag);
}
mRequestQueue.add(request);
}
</span>
public static void cancelAll(Object tag) {
mRequestQueue.cancelAll(tag);
}
}
通过自定义StringRequest类,进行后台用户登录:
StringRequest s4 = new StringRequest("http://192.168.0.141:8668/jf/platform/login/val",
new ApiParams()
.with("username", "admins")
.with("password", "000000"),
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
//获取后台返回结果User对象
User user = (User) FastJsonTools.getJson(response, User.class);
Log.d("TAG", response);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.e("TAG", error.getMessage(), error);
}
});
RequestManager.getRequestQueue().add(s4,this);
之后访问权限路径,就没问题了 :),之前查到的资料,一般解决方案是获取表头的cookies,继承Request,并封装cookies提交到后台,也算异曲同工。