从android调用Google app引擎python端点

时间:2015-04-03 05:07:24

标签: android python google-app-engine android-asynctask google-cloud-endpoints

我写了一个python GAE端点。

task_api.py的主要目的是将deviceRegistrationId插入到云数据库中,deviceRegistrationId将从android客户端发送。我暂时避开了client_id。

我的task_api.py文件:

import endpoints             #import the endpoints
from protorpc import messages   
from protorpc import message_types
from protorpc import remote
from google.appengine.ext import ndb

package = 'Hello'

class Task(messages.Message):
  name = messages.StringField(1, required = True)
  DeviceRegId = messages.StringField(2) 

class TaskModel(ndb.Model):
  name = ndb.StringProperty(required = True)
  DeviceRegId = ndb.StringProperty()

class TaskList(messages.Message):
  items = messages.MessageField(Task, 1, repeated = True)

@endpoints.api(name='task', version='v1', description='an API to save the divice registration id to database')
class TaskApi(remote.Service):

  @endpoints.method(Task, Task, name = 'task.insert', path = 'task', http_method = 'POST')
  def insert_task(self, request):
    TaskModel(name = request.name, DeviceRegId = request.DeviceRegId).put()
    return request

  def list_tasks(self, request):
    pass

APPLICATION = endpoints.api_server([TaskApi])

代码在GAE上编译和部署。

我已经在android客户端完成了以下程序:

1)完成了为android(https://cloud.google.com/appengine/docs/python/endpoints/endpoints_tool

生成客户端库

2)生成了gradle库,并在android studio

中添加了jar文件“as a library”

3)导入客户端库是成功的,我已经更新了官方文档中提到的build.gradle和manifest文件。

4)我已经完成了所有事情,但是我在最后阶段遇到了问题(我无法理解我编写的task_api的asynctask语法)。 我提到了这个链接(https://cloud.google.com/appengine/docs/python/endpoints/getstarted/clients/android/connect_backend)。但我无法理解,如何编写asynctask以调用我的端点TaskApi。

感谢您的帮助!!

0 个答案:

没有答案