I am having the same problem as you and I think it's not my mistake I have checked the tcpdump (to do it I changed from https to http to have plain text).
POST /c2dm/send HTTP/1.1 Authorization: GoogleLogin auth=SID=DQAAALwAAAA7O-9sDrg_FXztPEQ7fcfqBmPtCtIcN3gX4wTsXf7AmfQh5eetqv5jQm6FGt7QvjMJNaoZFlLNG- pTSPl07dQWCwM2tNSnbFCS6FO- Xe0Q0SJ6Ok4gipqqArAB2uh7mvgtHRguiWaP38IRVHcQjG4fhpo0K6LIZN0fBoE__FXl5ukqsIVc8Qo_ezXOspC_MZew76G6AvfkqwyMTM7XWzrgHDT9D9MlbgnuAWpR_XOA1KKOVO- eHFXp1UsCE6FM6mQ LSID=DQAAAL8AAADFjsO1Q_TnSqwZgm3HYxQsb08JcQxFwC_oucPZ3eEiqFNLhuQWJI_ZVS- iMuZKphHsmghU7I1sQPkFC_Iu0Jc0Fba4efoUYHcq- TBjLJgPQW-8aQVFMEobmMhkTJUUr0iXAibZV2Bbwd7HalGh1oZU07AtvQa7T- NMv7LUZT8rSYeSZ8kHBXKYaUHjVykVAAKmw2gS3ZDxpiklgSg8VmSyU6788JwH6lh2VpDzs1r0yoH55qOZD8gzBls64i5Lwgk Auth=DQAAAL8AAAD3PzwO5BSHo_TzqwD-QyTVM73-vxDAlUs8fkzbLoX5lHr6YI- D0IznRSnYoJshE9LDjtm78vcpbieT_RGBS9pnWXFier8l8uVQwITP0SLJnH2QMla4qLzylDANSqIIDdm_MY91t1wjGGivaTr5mOB_4w-0NQx_QvSQwyl-- eZnEkkH-80Ul_HJYzLv6TneYGd9q1q6UUAgDszesHzBQYullYvmwY1aF2wbVCUKF4urS_ynONL55aYg01ccShzExjs Content-Type: application/x-www-form-urlencoded Content-Length: 209 User-Agent: Jakarta Commons-HttpClient/3.1 Host: android.apis.google.com registration_id=APA91bEhZNjB1KZRlIzolrG_oXBpn0uTxPsoX22L5Xz- i9DTK38PRNe4QgoMTG9L4mrGlx33t6k39vRewVFRF7SAMbVSj62ESJ5o1gAdfANSiC6SCdXzAfE&collapse_key=12345&data.receiver=1234&data.source=12345&data.message=holaHTTP/ 1.0 411 Length Required Content-Type: text/html; charset=UTF-8 Content-Length: 1363 Date: Mon, 27 Dec 2010 16:30:22 GMT Server: GFE/2.0 <html><head> <meta http-equiv="content-type" content="text/html;charset=utf-8"> <title>411 Length Required</title> <style><!-- body {font-family: arial,sans-serif} div.nav {margin-top: 1ex} div.nav A {font-size: 10pt; font-family: arial,sans-serif} span.nav {font-size: 10pt; font-family: arial,sans-serif; font-weight: bold} div.nav A,span.big {font-size: 12pt; color: #0000cc} div.nav A {font-size: 10pt; color: black} A.l:link {color: #6f6f6f} A.u:link {color: green} //--></style> <script><!-- var rc=411; //--> </script> </head> <body text=#000000 bgcolor=#ffffff> <table border=0 cellpadding=2 cellspacing=0 width=100%><tr><td rowspan=3 width=1% nowrap> <b><font face=times color=#0039b6 size=10>G</font><font face=times color=#c41200 size=10>o</font><font face=times color=#f3c518 size=10>o</font><font face=times color=#0039b6 size=10>g</font><font face=times color=#30a72f size=10>l</font><font face=times color=#c41200 size=10>e</font> </b> <td> </td></tr> <tr><td bgcolor="#3366cc"><font face=arial,sans-serif color="#ffffff"><b>Error</b></td></tr> <tr><td> </td></tr></table> <blockquote> <H1>Length Required</H1> POST requests require a <code>Content-length</code> header. <p> </blockquote> <table width=100% cellpadding=0 cellspacing=0><tr><td bgcolor="#3366cc"><img alt="" width=1 height=4></td></tr></table> </body></html> This is my code: Protocol myhttps = new Protocol("https", new EasySSLProtocolSocketFactory(), 443); HttpClient httpclient = new HttpClient(); httpclient.getHostConfiguration().setHost("android.apis.google.com", 443, myhttps); PostMethod httppost = new PostMethod(C2DM_URL); try { httppost.addRequestHeader("Authorization", "GoogleLogin auth=" + authToken); httppost.addRequestHeader("Content-Type", "application/x-www-form- urlencoded"); httppost.addParameter("registration_id", registrationID); httppost.addParameter("collapse_key", collapseKey); httppost.addParameter("data.receiver", destination); httppost.addParameter("data.source", source); httppost.addParameter("data.message", message); httppost.addRequestHeader("Content-Length", ""+httppost.getRequestEntity().getContentLength()); httpclient.executeMethod(httppost); return new String(httppost.getResponseBody()); } finally { httppost.releaseConnection(); } } I have tested all those headers and it does not work. Did you find anything? Is it possible to contact to some at C2DM project to see what happens? Thanks a lot! On Dec 24, 3:23 pm, Nagaraj Ramarao <nraj.tes...@gmail.com> wrote: > Can someone knowledgable with C2DM help me resolve this issue please. > > Thanks > Nagaraj > > On Thu, Dec 23, 2010 at 10:20 AM, nagaraj <nraj.tes...@gmail.com> wrote: > > I am trying to push data from my server hosting a webservice but I get > > the following error: > > > <html><head> > > <meta http-equiv="content-type" content="text/html;charset=utf-8"> > > <title>411 Length Required</title> > > <style><!-- > > body {font-family: arial,sans-serif} > > div.nav {margin-top: 1ex} > > div.nav A {font-size: 10pt; font-family: arial,sans-serif} > > span.nav {font-size: 10pt; font-family: arial,sans-serif; font-weight: > > bold} > > div.nav A,span.big {font-size: 12pt; color: #0000cc} > > div.nav A {font-size: 10pt; color: black} > > A.l:link {color: #6f6f6f} > > A.u:link {color: green} > > //--></style> > > <script><!-- > > var rc=411; > > //--> > > </script> > > </head> > > <body text=#000000 bgcolor=#ffffff> > > <table border=0 cellpadding=2 cellspacing=0 width=100%><tr><td > > rowspan=3 width=1% nowrap> > > <b><font face=times color=#0039b6 size=10>G</font><font face=times > > color=#c41200 size=10>o</font><font face=times color=#f3c518 > > size=10>o</font><font face=times color=#0039b6 size=10>g</font><font > > face=times color=#30a72f size=10>l</font><font face=times > > color=#c41200 size=10>e</font> </b> > > <td> </td></tr> > > <tr><td bgcolor="#3366cc"><font face=arial,sans-serif > > color="#ffffff"><b>Error</b></td></tr> > > <tr><td> </td></tr></table> > > <blockquote> > > <H1>Length Required</H1> > > POST requests require a <code>Content-length</code> header. > > > <p> > > </blockquote> > > <table width=100% cellpadding=0 cellspacing=0><tr><td > > bgcolor="#3366cc"><img alt="" width=1 height=4></td></tr></table> > > </body></html> > > > Here is the java code that posts message to google c2dm which inturn > > will send a push notification to the device: > > > private void postData(String auth, String id, String data) { > > DefaultHttpClient client = new DefaultHttpClient(); > > HttpPost httppost = new HttpPost( > > "https://android.apis.google.com/c2dm/send"); > > List<NameValuePair> formparams = new ArrayList<NameValuePair>(); > > formparams.add(new BasicNameValuePair("registration_id", id)); > > formparams.add(new BasicNameValuePair("data.payload", data)); > > formparams.add(new BasicNameValuePair("collapse_key", "something")); > > //formparams.add(new BasicNameValuePair("Content-length", > > ""+data.length())); > > > if (null != id) { > > formparams.add(new BasicNameValuePair("id", id)); > > } > > UrlEncodedFormEntity entity = null; > > try { > > entity = new UrlEncodedFormEntity(formparams, "UTF-8"); > > } catch (UnsupportedEncodingException e1) { > > // TODO Auto-generated catch block > > e1.printStackTrace(); > > } > > httppost.setEntity(entity); > > Header header = new BasicHeader("Authorization: GoogleLogin auth=", > > auth); > > Header header2 = new BasicHeader("Content-length=", > > ""+data.length()); > > httppost.addHeader(header); > > httppost.addHeader(header2); > > httppost.getParams().setParameter("Content-length:", > > ""+data.length()); > > HttpContext localContext = new BasicHttpContext(); > > HttpResponse response = null; > > try { > > response = client.execute(httppost, localContext); > > HttpEntity entity2 = response.getEntity(); > > > System.out.println("----------------------------------------"); > > System.out.println(response.getStatusLine()); > > Header[] headers = response.getAllHeaders(); > > for (int i = 0; i < headers.length; i++) { > > System.out.println(headers[i]); > > } > > System.out.println("----------------------------------------"); > > > if (response.getEntity() != null) { > > System.out.println(EntityUtils.toString(response.getEntity())); > > } > > > } catch (Exception e) { > > System.err.println(e); > > } finally { > > } > > } > > > Note: > > 1. I successfully got the registration id from the client (device) > > 2. I successfully get the "Auth" from an earlier post on the server > > side > > > Any help will be greatly appreciated > > > Thank you > > -Nagaraj -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en