5

나는 방법 AppEngine에의 아래에 있습니다에서Google 클라우드 엔드 포인트 EOFException는

/_ah/api/.../v1/greeting/authed: java.io.EOFException 

: 나는 FF로 오류가 발생

HelloGreeting hg = null; 
try { 
    hg = service.authed().execute(); 
} catch (IOException e) { 
    Log.d("error", e.getMessage(), e); 
} 
return hg; 

:

@ApiMethod(name = "authed", path = "greeting/authed") 
public HelloGreeting authedGreeting(User user) { 
    ... 
} 
안드로이드 AsyncTask를에

내 doInBackground 방법

logcat :

Problem accessing /_ah/api/.../v1/greeting/authed. Reason: INTERNAL_SERVER_ERROR 
    at java.util.zip.GZIPInputStream.readUByte 
    at java.util.zip.GZIPInputStream.readUShort 
    at java.util.zip.GZIPInputStream.readUShort 

비공 인 방식을 호출 할 때만 작동합니다. 그것을 고치는 방법?

로컬 서버를 사용하고 있습니다.

+0

이 로컬 서버에 대해인가? –

+0

예, 로컬 서버. –

답변

7

값을 삽입하기 위해 전화를 걸 때 비슷한 문제가 발생했습니다. 내가 인증을 사용하지 않기 때문에 약간 차이가 있지만 동일한 예외가 발생했습니다. appengine-java-sdk-1.8.8을 사용하고 있습니다. 이 오류가있는 다른 엔드 포인트 호출을 만들 수있었습니다. 나는 생성 된 코드를 보았고, working call과 non-working calls의 차이점은 HttpMethod였다. 실패한 호출은 "POST"으로 정의되었습니다. @ApiMethod 주석의 주석 속성 httpMethod=ApiMethod.HttpMethod.GET을 사용하여이를 변경할 수있었습니다.

@ApiMethod(httpMethod = ApiMethod.HttpMethod.GET, name = "insertUserArtist", path = "insertUserArtist") 

나는 다음 클라이언트 코드를 재생하고 나는 지칠대로 지친 EOFException를받지 않고 전화를 걸 수 있었다. POST가 제대로 작동하지 않는 이유를 모르지만 GET으로 변경하면 효과가있었습니다. 이것은 아마도 얼마나 많은 양의 데이터가 전송되고 해결되어야하는지에 대한 몇 가지 질문을 제시 할 것입니다 (아마도 도서관 문제 일 수도 있습니다). Google에 제출할 데모 응용 프로그램을 만드는 방법을 살펴 보겠습니다.

+3

누구나 왜 이것이 효과가 있었는지 알 수 있습니까? – sauce

0

"엔터티"개체를 전달하면 POST가 작동합니다. 원시 데이터 형식을 전달하는 경우 HttpMethod.GET을 사용하여 문제가 생길 수 있습니다.

0

로컬 개발 서버에서 실행중인 경우 다음 MyApi.Builder에 다음 코드를 추가하여 루트 URL을 설정 한 후 올바르게 설정하십시오.

.setGoogleClientRequestInitializer(new GoogleClientRequestInitializer() { 
       @Override 
       public void initialize(AbstractGoogleClientRequest<?> abstractGoogleClientRequest) throws IOException { 
        abstractGoogleClientRequest.setDisableGZipContent(true); 
       } 
      }) 

출처 : https://github.com/GoogleCloudPlatform/gradle-appengine-templates/tree/master/HelloEndpoints

관련 문제