我是Java編程新手。我已經開發了一個android應用程序發送一個請求到GCM服務器,並作爲響應,它得到一個註冊ID,我發送到我的java服務器和服務器上,我將它存儲在數據庫中。它的工作很好:)用java發送GCM信息
對於第二部分我已經寫在http服務器的java代碼。使用此代碼,我可以從數據庫訪問註冊ID,並使用設備的字符串消息將其發送到GCM服務器。但我得到錯誤。我的http客戶端代碼在這裏。請有人幫忙嗎?
public static String REQUEST_URL = "https://android.googleapis.com/gcm/send";
private static String GCM_ID = "APA91bFEnZXT7YRTJm2d5NpbKcpJCuDwEIJjZmwYITIIWIOFIZHEtwYc8S3oN_Upe3RnSvUqcwmntIrMqaF8Vn04b_EZtvoDQMAqt21Zw9Sb9GhNXwVS70yDOjUyRohH7u1RmtTHRrkjaBUueIjS2gD1Uw1cQDJbQg";
/**
* @param args
*/
public static void main(String[] args) {
List<NameValuePair> formparams = new ArrayList<NameValuePair>();
formparams.add(new BasicNameValuePair("registration_id", GCM_ID));
formparams.add(new BasicNameValuePair("data", "this is data mesg"));
// UrlEncodedFormEntity entity = new UrlEncodedFormEntity(formparams,
// "UTF-8");
HttpClient httpclient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(REQUEST_URL);
httpPost.setHeader("Authorization",
"key=AIzaSyBTgKVWevp0GwM5m2QAuF__39eEI0bclVA");
httpPost.setHeader("Content-Type",
"application/x-www-form-urlencoded;charset=UTF-8");
try {
httpPost.setEntity(new UrlEncodedFormEntity(formparams, "utf-8"));
httpclient.execute(httpPost);
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
有一個gcm客戶端庫作爲google/android sdk的一部分,它使發送gcm消息非常簡單。我們在我們的後端服務器中使用它來向Android設備發送推送通知。你應該考慮使用它,而不是低級http代碼 – cmbaxter
你得到的錯誤是什麼? – Bishan
@JUNAID你解決了這個問題嗎?我也有類似的問題。 – user2800040