Question

I'm porting an Android app on GAE. The app compile and post a login form to enter in a password protected site. I'm using UrlFetchTransport instead of DefaultHttpClient. I can get web page without problem using the following piece of code:

    HttpTransport HTTP_TRANSPORT = new UrlFetchTransport();

    HttpRequestFactory requestFactory = HTTP_TRANSPORT.createRequestFactory();
    GenericUrl genericUrl = new GenericUrl(url);
    HttpRequest request = requestFactory.buildGetRequest(genericUrl);
    com.google.api.client.http.HttpHeaders httpHeaders = request.getHeaders();

    httpHeaders.setUserAgent("Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.57 Safari/537.36");
    httpHeaders.setAccept("text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");



    String paginaRicevuta = request.execute().parseAsString();

I would try a POST request using the following:

                UrlFetchTransport HTTP_TRANSPORT = new UrlFetchTransport();
                HttpRequestFactory requestFactory = HTTP_TRANSPORT.createRequestFactory();
                GenericUrl genericUrl = new GenericUrl("https://www.......");

                List<BasicNameValuePair> nvps = new ArrayList<BasicNameValuePair>();
                nvps.add(new BasicNameValuePair("ReturnUrl", ""));
                nvps.add(new BasicNameValuePair("userName", "username"));
                nvps.add(new BasicNameValuePair("password","password"));

                //HERE HOW DEFINE httpContent????                   
                HttpContent httpContent=null;

                final HttpRequest postRequest = requestFactory.buildPostRequest(genericUrl,httpContent);
                postRequest.setContent(httpContent);
                postRequest.setFollowRedirects(true);
                HttpHeaders httpHeaders = postRequest.getHeaders();                 
                httpHeaders.setUserAgent("Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.57 Safari/537.36");
                httpHeaders.setAccept("text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
                httpHeaders.setContentType("application/x-www-form-urlencoded");
                postRequest.setHeaders(httpHeaders);
                String pagePost = postRequest.execute().parseAsString();

but I don't know how format a right POST request? Thanks for your help.

No correct solution

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top