0
제 문제는 내가 엔드 포인트 v2로 마이 그 레이션 한 것입니다. 그리고 어떤 시점에서 내 GCM 등록 코드가 작동을 멈췄습니다.엔드 포인트에서 생성 된 클라이언트 라이브러리
중단 된 작업입니까?
이 두 번째 줄은 내가 이죠 수동으로 요청 자신을 보낼 때 일어나는 것이다: 더 구체적으로, 생성 된 클라이언트 라이브러리는이 이미지의 맨 윗줄에 제공하는 형태로 POST 요청을 보내도록 시도 (쿼리 문자열 대신 URL 조각에 데이터를 보내도록 변경). 이 작동하고 내 데이터베이스에 추가됩니다.
@ApiMethod(name = "registerDevice", httpMethod = "post")
public void registerDevice(@Named("regId") String regId) {
if(findRecord(regId) != null) {
log.info("Device " + regId + " already registered, skipping register");
return;
}
RegistrationRecord record = new RegistrationRecord();
record.setRegId(regId);
ofy().save().entity(record).now();
}
어떻게이 문제가 해결 될 수
Registration.Builder builder = new Registration.Builder(AndroidHttp.newCompatibleTransport(), new AndroidJsonFactory(), null)
.setRootUrl("https://"+Constants.PROJECT_ID+".appspot.com/_ah/api/");
regService = builder.build();
regService.registerDevice(gcmRegistrationId).execute();
자체는 다음과 같습니다 엔드 포인트 :
등록
는 표준 API 빌더를 사용하여 전송됩니다?내 코드를 배포하고 생성 된 다음 명령을 사용하고 있습니다 : 당신이 매개 변수가 쿼리 문자열을하고 싶다면
gradlew endpointsOpenApiDocs
gcloud endpoints services deploy backend\build\endpointsOpenApiDocs\openapi.json
gradlew appengineDeploy
gradlew endpointsClientLibs
매개 변수를 쿼리 문자열로 사용하려면 '@ Nullable'으로 표시해야합니다. – saiyr
나는 그것이 어떻게 보내질 지 특별히 신경 쓰지 않는다. 내가 가진 문제는 404입니다. 시스템이 잘못된 클라이언트 라이브러리를 생성하는 것 같습니다. 아니면이 경우에 nullable을 추가 할 것인가? – Knossos
@ saiyr 당신의 충고에 따라'@ Nullable'을 사용했습니다. 잘 작동했습니다. 내 새로운 코드는 다음과 같다 :'regService.register(). setRegId (regId) .execute();'. 당신이 올바른 방향으로 나를 지적했듯이, 당신이 대답을하면 나는 그것을 행복하게 받아 들일 것입니다. – Knossos