編輯:關於Android編程
Volley 默認是不支持Cookie的,如何添加Cookie,很是頭疼。
看源碼後發現HttpStack的子類中都有添加Header的代碼。
HurlStack performRequest方法中
HashMapmap = new HashMap (); map.putAll(request.getHeaders()); map.putAll(additionalHeaders); if (mUrlRewriter != null) { String rewritten = mUrlRewriter.rewriteUrl(url); if (rewritten == null) { throw new IOException("URL blocked by rewriter: " + url); } url = rewritten; } URL parsedUrl = new URL(url); HttpURLConnection connection = openConnection(parsedUrl, request); for (String headerName : map.keySet()) { connection.addRequestProperty(headerName, map.get(headerName)); }
HttpClientStack performRequest方法中
addHeaders(httpRequest, request.getHeaders());
看到什麼端倪了吧,對 request.getHeaders()可以設置Cookie
所以我們只要繼承Request,實現request中的getHeaders()方法就行了。
下面是我繼承JsonObjectRequest實現的方法
import java.util.HashMap;
import java.util.Map;
import org.json.JSONObject;
import com.android.volley.AuthFailureError;
import com.android.volley.Response.ErrorListener;
import com.android.volley.Response.Listener;
import com.android.volley.toolbox.JsonObjectRequest;
public class CookieRequest extends JsonObjectRequest {
private Map mHeaders=new HashMap(1);
public CookieRequest(String url, JSONObject jsonRequest, Listener listener,
ErrorListener errorListener) {
super(url, jsonRequest, listener, errorListener);
}
public CookieRequest(int method, String url, JSONObject jsonRequest, Listener listener,
ErrorListener errorListener) {
super(method, url, jsonRequest, listener, errorListener);
}
public void setCookie(String cookie){
mHeaders.put("Cookie", cookie);
}
@Override
public Map getHeaders() throws AuthFailureError {
return mHeaders;
}
}
[Android]自定義帶刪除輸入框
在項目開發中,帶刪除按鈕輸入框也是人們常常用到的,該文章便介紹一下如何創建一個帶刪除輸入框。其中,需要解決的問題如下:a)創建自定義editText類b)在自定義edit
Android 簡單實現ListView頂部懸浮效果
首先上效果圖,實現如下效果: @Override protected void onCreate(Bundle savedInstanceState) {
Android tips(十三)--)Android開發過程中使用Lambda表達式
新的Java8 API中提供了不少新的特性,其中就有Lambda表達式。而本文我們將主要介紹一下在Android開發過程中如何使用Lambda表達式,這裡主要是為我們後續
Android通過ksoap2這個框架調用webservice大講堂
昨天有人問我Android怎麼連接mysql數據庫,和對數據庫的操作呀,我想把,給他說說json通信,可是他並不知道怎麼弄,哎算了吧,直接叫他用ksoap吧,給他說了大半