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