繁体   English   中英

无法从标题响应中获取Cookie

[英]can not get Cookie from headers response

我是新手,我发出了HTTP请求,并在以下代码中获得了响应:

 public void postData() {
    // Create a new HttpClient and Post Header
    HttpClient httpclient = new DefaultHttpClient();
    HttpPost httppost = new HttpPost("http://192.168.1.105/moodle/login/index.php"); //http://192.168.1.105/moodle/login/index.php

    try {
        // Add your data
        List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
        nameValuePairs.add(new BasicNameValuePair("username", "admin"));
        nameValuePairs.add(new BasicNameValuePair("password", "dtkTj29000g!"));
        httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
        httppost.setHeader("Content-Type","application/x-www-form-urlencoded;charset=UTF-8");

        // Execute HTTP Post Request
        HttpResponse response = httpclient.execute(httppost);
        String responseContent = EntityUtils.toString(response.getEntity());
        Log.i("Response", responseContent );


        Header[] header=response.getAllHeaders();
        for(int i=0;i<header.length;i++){
            String a=header[i].getValue();
            String b=header[i].getName();
            Log.i("quangggggggggggggg",b+"__________"+a);
        }

        WebView webview = (WebView)findViewById(R.id.webkit1);
        webview.loadDataWithBaseURL(null,responseContent, "text/html", "utf-8",null);



    /*    cookies = mCookieStore.getCookies();
        for(int i=0;i<cookies.size();i++){
            String a=cookies.get(i).toString();
            Log.i("quangggggggggggg",a);
        }*/



    } catch (ClientProtocolException e) { 

    } catch (IOException e) {

    } 

} 

我想要的所有东西都只是从标头中获取cookie,但标头后面没有cookie。

我在logcat中有这个:

Date__________Mon, 14 Oct 2013 08:05:09 GMT
Server__________Apache/2.4.4 (Win32) OpenSSL/0.9.8y PHP/5.4.16
X-Powered-By__________PHP/5.4.16
Set-Cookie__________MoodleSession=tnd2sbd71qr1ft7s0jjskf3qk5; path=/moodle/
Expires__________
Cache-Control__________private, pre-check=0, post-check=0, max-age=0
Pragma__________no-cache
Content-Language__________en
Content-Script-Type__________text/javascript
Content-Style-Type__________text/css
X-UA-Compatible__________IE=edge
Accept-Ranges__________none
X-Frame-Options__________sameorigin
Keep-Alive__________timeout=5, max=100
Connection__________Keep-Alive
Transfer-Encoding__________chunked
Content-Type__________text/html; charset=utf-8

但是我在网络浏览器中看到的响应头是:

Cache-Control:no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Connection:Keep-Alive
Content-Language:en
Content-Length:586
Content-Type:text/html
Date:Mon, 14 Oct 2013 08:12:55 GMT
Expires:Thu, 19 Nov 1981 08:52:00 GMT
Keep-Alive:timeout=5, max=97
Location:http://192.168.1.105/moodle/login/index.php?testsession=2
Pragma:no-cache
Server:Apache/2.4.4 (Win32) OpenSSL/0.9.8y PHP/5.4.16
Set-Cookie:MoodleSession=ol6icib1pv4vv0qlpk9ng1nbn3; path=/moodle/
Set-Cookie:MOODLEID1_=deleted; expires=Thu, 01-Jan-1970 00:00:01 GMT; path=/moodle/
X-Powered-By:PHP/5.4.16

我不知道为什么我无法获得cookie,请你帮我吗? 非常感谢!

您的标头确实包含一个Cookie,即Set-Cookie。 像这样检索

Header[] cookieHeader = httpResponse.getHeaders("Set-Cookie");
        if (cookieHeader.length > 0) {
            HttpUtil.PHPSESSID = cookieHeader[0].getValue();
        }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM