Hello again:

I just want to thank you again for the super help!

I am now able to remote login using GAE for java. I am able to retrieve the
information from the pages I want. Instead of using the POST method I use
the GET method to login and call the method as many times as I need with new
URLs to fetch the pages I want but definitely the help on how to get the
cookie header and use it in the subsequent fetches was precious so thanks
again for the super google help. ;-)

best regards!

On Fri, Feb 25, 2011 at 6:51 PM, cyberalgo rythms <[email protected]
> wrote:

> Hi:
> The URL which comes in the response variable is the login page. All the
> fields there are populated according to setPayload field values but the
> password does not get populated ?
>
> I posted a new thread for this as it might not be related to this one.
>
> Thank you
>
>
> On Fri, Feb 25, 2011 at 6:22 PM, Philippe Beaudoin <
> [email protected]> wrote:
>
>> I don't know about that... Have you tried checking the URL accessed
>> when you manually fill the form and click submit?
>>
>> Cheers,
>>
>>   Philippe
>>
>> On Fri, Feb 25, 2011 at 9:30 AM, cyberalgo rythms
>> <[email protected]> wrote:
>> > Thank you for the super help. It is first time I using this interface.
>> > I did use your code and modified a bit and I believe got the cookie
>> working.
>> > Why i say that because after accessing the second fetch and in the view
>> > source code of the page somewhere inside uses the PHPSESSID i have
>> retrieved
>> > from the login URL page. That indicates me i succeed in tracking the
>> session
>> > id used.
>> > The cookie and the value I send back to the server looks like this but
>> may
>> > de different for other servers.
>> > Cookie: PHPSESSID=sfs3892jhfsdkfsldfjsldkfjdfsdfjdfkdfdf
>> > Code now:
>> > // BEGIN --------
>> >        URLFetchService urlFetchService=
>> >  URLFetchServiceFactory.getURLFetchService();
>> >        URL url = new URL("https://www.somename.com/login.php";);
>> >        HTTPRequest httpRequest = new HTTPRequest(url,HTTPMethod.POST,
>> > validateCertificate());
>> >        HTTPResponse response = urlFetchService.fetch(httpRequest);
>> >
>> >        // Get site cookie
>> >        // ...
>> >        String cookies=null;
>> >        for (HTTPHeader header : response.getHeaders())
>> >          {
>> >          if (header.getName().equalsIgnoreCase("set-cookie")) {
>> >          cookies =  header.getValue().substring(0,42); // gets only
>> > PHPSESSID=value32characters for my server URL
>> >          // prepare second HTTP request with cookie set
>> >          httpRequest.setHeader(new HTTPHeader("Cookie", cookies));
>> >          }
>> >           }
>> >        // ...
>> >        // prepare second HTTP request with cookie set
>> >
>> >
>> httpRequest.setPayload("lang=en&login=dm2vdfT&password=vjfgd&action=login".getBytes());
>> >        response = urlFetchService.fetch(httpRequest);
>> > // END ------------------------------------------
>> > The problem I am facing now is that it populates the login and lang
>> fields
>> > but the password value is left blank but i do have it in the setPayload
>> > function. So i don't understand why it does not read it ? Should the
>> > password value be sent differently from the other fields ?
>> > Thanks again for you help!
>> >
>> > On Thu, Feb 24, 2011 at 5:51 PM, Philippe Beaudoin
>> > <[email protected]> wrote:
>> >>
>> >> My guess is that the JSESSIONID (or whichever session cookie used by
>> the
>> >> service) that is received in the HTTPResponse of your first fetch() is
>> not
>> >> sent back with your second fetch. As a consequence, the service does
>> not
>> >> know you're logged in. Here is how I would solve it (I did not test
>> that
>> >> code):
>> >> // ...
>> >> HTTPResponse response = urlFetchService.fetch(httpRequest);
>> >> List<HTTPHeader> headers = response.getHeaders();
>> >> String cookies;
>> >> for (HTTPHeader header : headers)
>> >>   if ("Set-Cookie".equals(header.getName())
>> >>     cookies = header.getValue();
>> >> httpRequest = new HTTPRequest(url,HTTPMethod.POST,
>> validateCertificate());
>> >> if (cookies != null)
>> >>   httpRequest.setHeader(new HTTPHeader("Cookie", cookies));
>> >> // ...
>> >> You may run into the following issues, though:
>> >>   http://code.google.com/p/googleappengine/issues/detail?id=1704
>> >>   http://code.google.com/p/googleappengine/issues/detail?id=3379
>> >> Hope it helps,
>> >>    Philippe
>> >>
>> >> --
>> >> You received this message because you are subscribed to the Google
>> Groups
>> >> "Google App Engine for Java" group.
>> >> To post to this group, send email to
>> >> [email protected].
>> >> To unsubscribe from this group, send email to
>> >> [email protected].
>> >> For more options, visit this group at
>> >> http://groups.google.com/group/google-appengine-java?hl=en.
>> >
>> > --
>> > You received this message because you are subscribed to the Google
>> Groups
>> > "Google App Engine for Java" group.
>> > To post to this group, send email to
>> [email protected].
>> > To unsubscribe from this group, send email to
>> > [email protected].
>> > For more options, visit this group at
>> > http://groups.google.com/group/google-appengine-java?hl=en.
>> >
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "Google App Engine for Java" group.
>> To post to this group, send email to
>> [email protected].
>> To unsubscribe from this group, send email to
>> [email protected].
>> For more options, visit this group at
>> http://groups.google.com/group/google-appengine-java?hl=en.
>>
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine for Java" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.

Reply via email to