C2DM을 대체하기 위해 새로운 GCM 서비스를 사용하기 위해 앱의 특정 부분을 정밀 조사하고 있습니다. 간단히 테스트를 위해 Java 프로그램에서 JSON 요청을 작성한 다음 응답을 읽는 것입니다. 현재로서는 JSON 요청에 대한 형식 문제를 찾을 수 없으며 Google 서버는 항상 내 JSON에 문제가 있음을 나타내는 코드 400을 반환합니다. http://developer.android.com/guide/google/gcm/gcm.html#server새로운 GCM 용 Android HttpsURLConnection 및 JSON
JSONObject obj = new JSONObject();
obj.put("collapse_key", "collapse key");
JSONObject data = new JSONObject();
data.put("info1", "info_1");
data.put("info2", "info 2");
data.put("info3", "info_3");
obj.put("data", data);
JSONArray ids = new JSONArray();
ids.add(REG_ID);
obj.put("registration_ids", ids);
System.out.println(obj.toJSONString());
내가 이클립스 콘솔에 내 요청이
내가 그 오류 401 발생하는 것처럼 내 API 키가 올바른지 확신을 포맷하는 것 확인하기 위해 인쇄, 그래서 구글 문서를 말한다 . JSON을 처음 사용하는 것이지만 간단하기 때문에 이해하기 쉽습니다. 누구든지 내가 항상 코드 400을받는 이유에 대한 아이디어가 있습니까?
업데이트 : gcm에 제공된 Google 서버 예제 클래스를 테스트 했으므로 문제는 내 코드와 반드시 일치해야합니다.
{"collapse_key":"new-test-notification","data":{"info1":"info_1","info3":"info_3","info2":"info 2"},"registration_ids":["APA91bG3bmCSltzQYl_yOcjG0LPcR1Qemwg7osYJxImpSuWZftmmIjUGH_CSDG3mswKuV3AAb8GSX7HChOKGAYHz1A_spJus5mXFtfOrK0fouBD7QBpKnfc_ly0t3S8vSYWRjuGxtXrt"]}
나는 내가 개발자 콘솔 검사에서 구글 서비스에 등록되지 않았 음을 의미 옛 C2DM으로이 문제를했을 때 : 1. 콘솔에서 프로젝트를 창조 하셨 는가? 2. 개발자 콘솔에서 프로젝트에 대한 Google 클라우드 서비스를 사용 설정 했습니까?3.i는 유효한 API 키가있는 trival이라고 가정합니다. – codeScriber
요청의 JSON 문자열을 게시 할 수 있습니다. temp1.toJSONString()의 출력 내용 만 출력하면됩니다. – azgolfer
방금 JSON String으로 업데이트되었습니다. 고마워, 아직도이 문제가있다 –