Saturday, 7 September 2013

Can't connect to Google Cloud Messaging (GCM) server using Google App Engine (GAE)

Can't connect to Google Cloud Messaging (GCM) server using Google App
Engine (GAE)

I am trying to set up google cloud messaging for my app, and I am using
Google App Engine for my server. I have my API key but I can't seem to
make a connection to the google cloud messaging servers. Here is my code.
HttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost("https://android.googleapis.com/gcm/send");
try {
List<NameValuePair> nameValuePairs = new
ArrayList<NameValuePair>(2);
nameValuePairs.add(new BasicNameValuePair("registration_id",
regId));
nameValuePairs.add(new BasicNameValuePair("data.message",
messageText));
post.setEntity(new UrlEncodedFormEntity(nameValuePairs));
post.setHeader("Authorization", "key=*MY_API_KEY_HERE*");
post.setHeader("Content-Type",
"application/x-www-form-urlencoded;charset=UTF-8");
Header[] s=post.getAllHeaders();
System.out.println("The header from the httpclient:");
for(int i=0; i < s.length; i++){
Header hd = s[i];
System.out.println("Header Name: "+hd.getName()
+" "+" Header Value: "+ hd.getValue());
}
HttpResponse response = client.execute(post);
BufferedReader rd = new BufferedReader(new
InputStreamReader(response.getEntity().getContent()));
String line = "";
while ((line = rd.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
When I look at the log the headers are being setup right. However, I get
an error that says
org.apache.http.impl.client.DefaultRequestDirector tryConnect: I/O
exception (java.net.SocketException) caught when connecting to the target
host: Permission denied: Attempt to access a blocked recipient without
permission. (mapped-IPv4)
I've turned google cloud messaging on in the Google APIs Console and I've
checked my API key a bunch of times. I have no clue why I'm getting
rejected. Is there a jar I need in the war or something I have to put in
the manifest?
Thanks for reading this! Mark

No comments:

Post a Comment