【问题标题】:Google Cloud Endpoints Setup TroubleGoogle Cloud Endpoints 设置问题
【发布时间】:2015-04-12 03:30:45
【问题描述】:

我对 Google 的 Cloud Platform 完全陌生,在为我的 Android 设备设置它时遇到了问题。我正在尝试关注this tutorial,并且正在尝试使用我的 Android 模拟器测试我的后端。然而,模拟器在 20 秒后给了我this message,而它应该说我的名字。到目前为止,这是我的代码:

MainActivity.java

@Override
protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    buildUI();

    new EndpointsAsyncTask().execute(new Pair<Context, String>(this, "Solomon"));


}

EndpointsAsyncTask.java

public class EndpointsAsyncTask extends AsyncTask<Pair<Context, String>, Void, String> {
private static MyApi myApiService = null;
private Context context;

@Override
protected String doInBackground(Pair<Context, String>... params) {
    if(myApiService == null) {  // Only do this once
        MyApi.Builder builder = new MyApi.Builder(AndroidHttp.newCompatibleTransport(),
                new AndroidJsonFactory(), null)
                // options for running against local devappserver
                // - 10.0.2.2 is localhost's IP address in Android emulator
                // - turn off compression when running against local devappserver
                .setRootUrl("http://10.0.2.2:8080/_ah/api/")
                .setGoogleClientRequestInitializer(new GoogleClientRequestInitializer() {
                    @Override
                    public void initialize(AbstractGoogleClientRequest<?> abstractGoogleClientRequest) throws IOException {
                        abstractGoogleClientRequest.setDisableGZipContent(true);
                    }
                });
        // end options for devappserver

        myApiService = builder.build();
    }

    context = params[0].first;
    String name = params[0].second;

    try {
        return myApiService.sayHi(name).execute().getData();
    } catch (IOException e) {
        return e.getMessage();
    }
}

@Override
protected void onPostExecute(String result) {
    Toast.makeText(context, result, Toast.LENGTH_LONG).show();
}
}

感谢所有帮助!

编辑:部分问题是我运行的是 Endpoints Backend 而不是 App Engine Servlet Backend。但现在我得到“连接被拒绝”,我正在运行 App Engine Servlet 后端。有什么想法吗?

【问题讨论】:

  • Solomon,请将您的浏览器指向10.0.2.2:8080/_ah/api/explorer,您的所有端点都在那里吗?
  • @jirungaray 我在浏览器中访问了该链接,但它告诉我“此网页不可用”。
  • 好的,问题不在于您的客户端,您的服务器运行不正常。请包括您正在使用的构建系统(eclipse、maven?)并包括端点源。
  • 你可能需要在开发服务器中设置你的地址,默认情况下它只监听本地主机。由于您试图将其暴露给另一个地址(模拟器),因此您必须更改它侦听的地址。
  • @jirungaray 我使用的是 Android Studio 而不是 Eclipse。不知道你是不是这个意思?

标签: java android google-app-engine android-studio google-cloud-endpoints


【解决方案1】:

在艰难的几天之后,我发现问题是我需要将我的 rootUrl 从 http://10.0.2.2:8080/_ah/api/ 更改为我的 apppot 域。现在我收到了 Hello World 消息。

【讨论】:

    猜你喜欢
    • 2018-07-06
    • 2020-08-18
    • 1970-01-01
    • 2018-12-18
    • 2017-07-06
    • 1970-01-01
    • 2019-10-27
    • 1970-01-01
    • 2013-05-23
    相关资源
    最近更新 更多