我正在尝试为我的应用程序设置谷歌云消息传递,并且我正在为我的服务器使用 Google App Engine。我有我的 API 密钥,但我似乎无法连接到谷歌云消息服务器。这是我的代码。
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();
}
当我查看日志时,标题设置正确。但是,我收到一条错误消息
org.apache.http.impl.client.DefaultRequestDirector tryConnect:连接到目标主机时捕获的 I/O 异常 (java.net.SocketException):权限被拒绝:未经许可尝试访问被阻止的收件人。(映射-IPv4)
我已经在 Google API 控制台中打开了谷歌云消息传递,并且我已经检查了我的 API 密钥很多次。我不知道为什么我会被拒绝。有没有我在战争中需要的罐子或者我必须放在清单中的东西?
感谢您阅读本文!标记