Android開發之獲取http header中的sessionid信息


再最近的項目中,遇到一個問題。就是注冊的時候,需要將服務器返回的手機驗證碼,再次發給服務器以驗證手機注冊是否成功。

但是始終無法將自己的驗證碼和服務器的驗證碼匹配成功

這時候,就需要我們去獲取服務器在返回給我們手機驗證碼中http header中的sessionid,將sessionid中的內容發給服務器,以去匹配服務器返回的sessionid值。

下面代碼就可以正確獲取sessionid值,並且保存下來。

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

import org.apache.http.Header;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpGet;

public class HttpCookies
{
    private static HashMap<String, String> CookieContiner = new HashMap<String, String>();

    /**
     * 保存Cookie
     * 
     * @param resp
     */
    @SuppressWarnings("unused")
    public void SaveCookies(HttpResponse httpResponse)
    {
        Header[] headers = httpResponse.getHeaders("Set-Cookie");
        String headerstr = headers.toString();
        if (headers == null)
        {
            return;
        } else
        {
            for (int i = 0; i < headers.length; i++)
            {
                String cookie = headers[i].getValue();
                String[] cookievalues = cookie.split(";");
                for (int j = 0; j < cookievalues.length; j++)
                {
                    String[] keyPair = cookievalues[j].split("=");
                    String key = keyPair[0].trim();
                    String value = keyPair.length > 1 ? keyPair[1].trim() : "";
                    CookieContiner.put(key, value);
                }
            }

        }
    }

    /**
     * 增加Cookie
     * 
     * @param request
     */
    @SuppressWarnings("rawtypes")
    public void AddCookies(HttpGet request)
    {
        StringBuilder sb = new StringBuilder();
        Iterator iter = CookieContiner.entrySet().iterator();
        while (iter.hasNext())
        {
            Map.Entry entry = (Map.Entry) iter.next();
            String key = entry.getKey().toString();
            String val = entry.getValue().toString();
            sb.append(key);
            sb.append("=");
            sb.append(val);
            sb.append(";");
        }
        request.addHeader("cookie", sb.toString());

    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM