Mar*_*ang 7 java google-app-engine google-cloud-messaging
我正在尝试为我的应用设置谷歌云消息,我正在为我的服务器使用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();
}
Run Code Online (Sandbox Code Playgroud)
当我查看日志时,标题正在设置正确.但是,我收到一个错误
org.apache.http.impl.client.DefaultRequestDirector tryConnect:连接到目标主机时捕获的I/O异常(java.net.SocketException):权限被拒绝:尝试在未经许可的情况下访问被阻止的收件人.(映射-IPv4)的
我已经在Google API控制台中启用了Google云消息传递,并且我已经多次检查了我的API密钥.我不知道为什么我会被拒绝.在战争中我需要一个罐子或者我必须放入清单中吗?
感谢您阅读!! 标记
小智 2
我遇到了同样的问题,并且我正在使用与您使用的类似的东西。
因此,我的代码以前看起来像你的,现在看起来如下:
String json ="{}";
URL url = new URL("https://android.googleapis.com/gcm/send");
HTTPRequest request = new HTTPRequest(url, HTTPMethod.POST);
request.addHeader(new HTTPHeader("Content-Type","application/json"));
request.addHeader(new HTTPHeader("Authorization", "key=<>"));
request.setPayload(json.getBytes("UTF-8"));
HTTPResponse response = URLFetchServiceFactory.getURLFetchService().fetch(request);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2384 次 |
最近记录: |