从安卓调用Python Google Cloud Endpoint API

4 投票
1 回答
821 浏览
提问于 2025-04-17 20:15

目前我已经创建了一个叫做 paper 的 Python 应用引擎接口(api),这个信息也在 app.yaml 文件里提到过。我把所有的 jar 文件,包括 …-java-1.13.2-beta-sources.jar 文件,都放在了我的安卓项目的 libs 目录下。我该怎么调用我的一个网络服务(也就是接口方法)呢?我不知道哪个包名能让我找到这个 api,在 Python 后台里,它的定义是 class PageApi(remote.Service):。假设 paper api 有一个叫 countPages(self): 的方法,我该怎么调用这个服务?我已经尝试过导入 import com.appspot.api.services.[etc],但是 Eclipse 没有找到这个导入路径。

编辑:

我重新加载了这个 api。检查了一下 api explorer,发现一切看起来都正常。然后我找到了两个看起来像是我的包的东西——不过它们里面根本没有任何类。

import com.google.api.services.page.*;
import com.google.api.services.page.model.*;

如果它们确实是我的包,为什么里面会没有类呢?

1 个回答

0

首先,一旦你正确设置了你的项目,之前用来生成客户端库的向导会把它复制到你的Android项目中,并提取源文件。然后你可以在项目资源管理器的endpoint-libs文件夹中找到你需要的包。你可以查看这篇文章,里面有一些关于如何让这个工作正常的建议。

接下来,你可以用下面的Android代码来调用一个端点:

final HttpTransport transport = AndroidHttp.newCompatibleTransport();
JsonFactory jsonFactory = new JacksonFactory();

endpointname.Builder builder = new endpointname.Builder( transport, jsonFactory, null );    
builder.setApplicationName( appName );

endpointname service = builder.build();

try {
   response = service.methodName( parameters ).execute();
} catch (IOException e) {
   Log.e(...);
}

撰写回答