Google 앱 엔진의 Google 클라우드 엔드 포인트

케빈 리

웹 사이트 튜토리얼을 기반으로 안드로이드 앱을 완성했습니다. 이 앱은 구글 데이터 스토어에 데이터를주고받습니다. appengine 백엔드를 만들었습니다. 이것은 localhost : 8888에서 로컬로 잘 작동합니다. 데이터 변환을 볼 수있었습니다. 하지만 Google 앱 엔진에 배포 한 후. 데이터를 표시 할 수 없습니다. myapp.appspot.com/_ah/api/explorer로 데이터 저장소에 액세스 할 수 있습니다. 그러나 전화 에뮬레이터로 로컬 데이터에 액세스 할 수있는 동안 전화로 액세스 할 수 없습니다. 이 신사의 가이드 https://github.com/sachinkariyattin/Cloudendpoints를 따랐습니다.

누구든지 나를 도울 수 있습니까? 미리 감사드립니다.

아래는 CloudEndpointUtils 클래스입니다.

package com.iot1;

import com.google.api.client.googleapis.json.GoogleJsonError;
import com.google.api.client.googleapis.json.GoogleJsonResponseException;
import com.google.api.client.googleapis.services.AbstractGoogleClient;
import com.google.api.client.googleapis.services.AbstractGoogleClientRequest;
import com.google.api.client.googleapis.services.GoogleClientRequestInitializer;

import android.app.Activity;
import android.util.Log;
import android.widget.Toast;

import java.io.IOException;

/**
 * Common utilities for working with Cloud Endpoints.
 * 
 * If you'd like to test using a locally-running version of your App Engine
 * backend (i.e. running on the Development App Server), you need to set
 * LOCAL_ANDROID_RUN to 'true'.
 * 
 * See the documentation at
 * http://developers.google.com/eclipse/docs/cloud_endpoints for more
 * information.
 */
public class CloudEndpointUtils {

  /*
   * TODO: Need to change this to 'true' if you're running your backend locally using
   * the DevAppServer. See
   * http://developers.google.com/eclipse/docs/cloud_endpoints for more
   * information.
   */
  protected static final boolean LOCAL_ANDROID_RUN = true;

  /*
   * The root URL of where your DevAppServer is running (if you're running the
   * DevAppServer locally).
   */
  protected static final String LOCAL_APP_ENGINE_SERVER_URL = "http://localhost:8888/";

  /*
   * The root URL of where your DevAppServer is running when it's being
   * accessed via the Android emulator (if you're running the DevAppServer
   * locally). In this case, you're running behind Android's virtual router.
   * See
   * http://developer.android.com/tools/devices/emulator.html#networkaddresses
   * for more information.
   */
  protected static final String LOCAL_APP_ENGINE_SERVER_URL_FOR_ANDROID = "http://10.0.2.2:8888";

  /**
   * Updates the Google client builder to connect the appropriate server based
   * on whether LOCAL_ANDROID_RUN is true or false.
   * 
   * @param builder
   *            Google client builder
   * @return same Google client builder
   */
  public static <B extends AbstractGoogleClient.Builder> B updateBuilder(
      B builder) {
    if (LOCAL_ANDROID_RUN) {
      builder.setRootUrl(LOCAL_APP_ENGINE_SERVER_URL_FOR_ANDROID
          + "/_ah/api/");
    }

    // only enable GZip when connecting to remote server
    final boolean enableGZip = builder.getRootUrl().startsWith("https:");

    builder.setGoogleClientRequestInitializer(new GoogleClientRequestInitializer() {
    @Override
      public void initialize(AbstractGoogleClientRequest<?> request)
          throws IOException {
        if (!enableGZip) {
          request.setDisableGZipContent(true);
        }
      }
    });

    return builder;
  }

  /**
   * Logs the given message and shows an error alert dialog with it.
   * 
   * @param activity
   *            activity
   * @param tag
   *            log tag to use
   * @param message
   *            message to log and show or {@code null} for none
   */
  public static void logAndShow(Activity activity, String tag, String message) {
    Log.e(tag, message);
    showError(activity, message);
  }

  /**
   * Logs the given throwable and shows an error alert dialog with its
   * message.
   * 
   * @param activity
   *            activity
   * @param tag
   *            log tag to use
   * @param t
   *            throwable to log and show
   */
  public static void logAndShow(Activity activity, String tag, Throwable t) {
    Log.e(tag, "Error", t);
    String message = t.getMessage();
    // Exceptions that occur in your Cloud Endpoint implementation classes
    // are wrapped as GoogleJsonResponseExceptions
    if (t instanceof GoogleJsonResponseException) {
      GoogleJsonError details = ((GoogleJsonResponseException) t)
          .getDetails();
      if (details != null) {
        message = details.getMessage();
      }
    }
    showError(activity, message);
  }

  /**
   * Shows an error alert dialog with the given message.
   * 
   * @param activity
   *            activity
   * @param message
   *            message to show or {@code null} for none
   */
  public static void showError(final Activity activity, String message) {
    final String errorMessage = message == null ? "Error" : "[Error ] "
        + message;
    activity.runOnUiThread(new Runnable() {
    @Override   
      public void run() {
        Toast.makeText(activity, errorMessage, Toast.LENGTH_LONG)
            .show();
      }
    });
  }
}
케빈 리

appengine-web.xml을 변경 한 후 생성 된 Google 클라이언트 라이브러리를 업데이트해야한다는 것을 알았습니다. 이제 모든 것이 작동합니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

최신 버전의 Google 클라우드 앱 엔진 배포에 대한 URL이 있습니까?

분류에서Dev

Google API Python 클라이언트가 내 로컬 앱 엔진 엔드 포인트의 이전 버전을 계속 사용합니다.

분류에서Dev

앱 엔진의 Google 앱

분류에서Dev

엔드 포인트 누락을 생성하는 Google 클라우드 도구

분류에서Dev

내 자바 스크립트 앱이 내 Google 클라우드 엔드 포인트에 액세스하려고 할 때 401 오류

분류에서Dev

Google 클라우드 스토리지 파일을 압축하는 방법은 무엇입니까? Google 앱 엔진

분류에서Dev

GKE에 Google 클라우드 엔드 포인트를 배포 할 수 없습니다.

분류에서Dev

jquery Google 앱 엔진

분류에서Dev

Google 컴퓨터 엔진 또는 Google 클라우드 서비스?

분류에서Dev

Google 앱 엔진에 앱을 배포하고 API 및 클라이언트를 시작하려는 경우

분류에서Dev

C #을 사용하여 Google 클라우드 엔드 포인트에 json을 게시 할 수 없습니다.

분류에서Dev

Google 클라우드 엔드 포인트를 버전 v2로 마이그레이션

분류에서Dev

Google 클라우드 엔진 메타 데이터 쿼리

분류에서Dev

Google 클라우드 컴퓨팅 엔진 시간 초과 창

분류에서Dev

Android Studio로 개발할 때 앱 엔진과 클라우드 엔드 포인트의 차이점은 무엇입니까?

분류에서Dev

Google 앱 엔진의 최대 절전 모드에서 mysql과 중복 ID

분류에서Dev

objectify / Google 앱 엔진의 외래 키

분류에서Dev

Google 앱 엔진의 자동 확장

분류에서Dev

캔트 dowload Google 앱 엔진 1.9.1

분류에서Dev

Google 앱 엔진 joomla 링크가로드되지 않음

분류에서Dev

설정 방법 Google 클라우드 컴퓨팅 엔진에 봄 부트 프로젝트?

분류에서Dev

UnavailableException Google App Engine 엔드 포인트 프로젝트

분류에서Dev

브라우저와 Google 앱 엔진 애플리케이션 간의 통신

분류에서Dev

백엔드에서 Google 엔드 포인트의 클라이언트로 데이터를 전달하는 방법은 무엇입니까?

분류에서Dev

Google 클라우드 버킷에 angular2 웹 앱 배포

분류에서Dev

Google 엔드 포인트의 경로 매개 변수를 백엔드로 전달하지 않음

분류에서Dev

앱 엔진의 스레드 안전 클라이언트 라이브러리 (python)

분류에서Dev

Google 애플리케이션 콜백 엔드 포인트 취소

분류에서Dev

Google 애플리케이션 콜백 엔드 포인트 취소

Related 관련 기사

  1. 1

    최신 버전의 Google 클라우드 앱 엔진 배포에 대한 URL이 있습니까?

  2. 2

    Google API Python 클라이언트가 내 로컬 앱 엔진 엔드 포인트의 이전 버전을 계속 사용합니다.

  3. 3

    앱 엔진의 Google 앱

  4. 4

    엔드 포인트 누락을 생성하는 Google 클라우드 도구

  5. 5

    내 자바 스크립트 앱이 내 Google 클라우드 엔드 포인트에 액세스하려고 할 때 401 오류

  6. 6

    Google 클라우드 스토리지 파일을 압축하는 방법은 무엇입니까? Google 앱 엔진

  7. 7

    GKE에 Google 클라우드 엔드 포인트를 배포 할 수 없습니다.

  8. 8

    jquery Google 앱 엔진

  9. 9

    Google 컴퓨터 엔진 또는 Google 클라우드 서비스?

  10. 10

    Google 앱 엔진에 앱을 배포하고 API 및 클라이언트를 시작하려는 경우

  11. 11

    C #을 사용하여 Google 클라우드 엔드 포인트에 json을 게시 할 수 없습니다.

  12. 12

    Google 클라우드 엔드 포인트를 버전 v2로 마이그레이션

  13. 13

    Google 클라우드 엔진 메타 데이터 쿼리

  14. 14

    Google 클라우드 컴퓨팅 엔진 시간 초과 창

  15. 15

    Android Studio로 개발할 때 앱 엔진과 클라우드 엔드 포인트의 차이점은 무엇입니까?

  16. 16

    Google 앱 엔진의 최대 절전 모드에서 mysql과 중복 ID

  17. 17

    objectify / Google 앱 엔진의 외래 키

  18. 18

    Google 앱 엔진의 자동 확장

  19. 19

    캔트 dowload Google 앱 엔진 1.9.1

  20. 20

    Google 앱 엔진 joomla 링크가로드되지 않음

  21. 21

    설정 방법 Google 클라우드 컴퓨팅 엔진에 봄 부트 프로젝트?

  22. 22

    UnavailableException Google App Engine 엔드 포인트 프로젝트

  23. 23

    브라우저와 Google 앱 엔진 애플리케이션 간의 통신

  24. 24

    백엔드에서 Google 엔드 포인트의 클라이언트로 데이터를 전달하는 방법은 무엇입니까?

  25. 25

    Google 클라우드 버킷에 angular2 웹 앱 배포

  26. 26

    Google 엔드 포인트의 경로 매개 변수를 백엔드로 전달하지 않음

  27. 27

    앱 엔진의 스레드 안전 클라이언트 라이브러리 (python)

  28. 28

    Google 애플리케이션 콜백 엔드 포인트 취소

  29. 29

    Google 애플리케이션 콜백 엔드 포인트 취소

뜨겁다태그

보관