1

I'm beginner, I maked a HTTP request and get response back in this code:

 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) {

    } 

} 

everythings I want just get the cookie from headers, but the headers back is not have cookie.

I had this in my 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

But the response headers I saw in web browser is:

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

I don't know why I can't get the cookie, would you help me please? thank so much!

1 Answer 1

5

You Header DOES contain a Cookie, the Set-Cookie. Retrieve it like this

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

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.