Ner*_*tor 2 python google-app-engine request
我正在研究Google App Engine上的python项目,我正在使用Parse发送推送通知.Eyerything工作正常,但是当我必须通过POST休息请求向Parse服务器发送多个通知到不同的设备时,我注意到了一些延迟.
更清楚:
我有一个包含N个元素的循环,我必须发送推送通知的每个元素,因此我必须向Parse发出POST请求,并且每个连接(当然)需要大约300毫秒才能完成,因此完成起来非常慢整个循环.
我认为应该更好地在异步请求中更改请求但是在搜索文档和Google之后我发现没有明确的示例如何使用urllib2或者urlfetch如何使用Parse Key和Applicaton Id传递标头.
工作(不是异步)代码是
parse_connection = httplib.HTTPSConnection('api.parse.com', 443)
parse_connection.connect()
parse_app_id = parse_settings.APPLICATION_ID
parse_rest_api_key = parse_settings.REST_API_KEY
parse_connection.request('POST', '/1/push',
json.dumps({
"channels": ["blabla"],
"data": {
"alert": "A",
"title":"B",
"badge": "Increment",
"category": "C",
"sound": "default",
"additionalInfos": {"X": "Custom dict"}}
}),
{
"X-Parse-Application-Id": parse_app_id,
"X-Parse-REST-API-Key": parse_rest_api_key,
"Content-Type": "application/json"
})
return json.loads(parse_connection.getresponse().read())
Run Code Online (Sandbox Code Playgroud)
为了使异步我想我应该用urlfetch用
rpc = urlfetch.create_rpc()
options = json.dumps({"channels": ["blabla"],
"data": {
"alert": "A",
"title": "B",
"badge": "Increment",
"category": "C",
"sound": "default",
"additionalInfos": {"X": "Custom dict"}},
})
urlfetch.make_fetch_call(rpc, "https://api.parse.com/1/push:443", options)
Run Code Online (Sandbox Code Playgroud)
但是我找不到添加标题的例子.有什么建议吗?谢谢!
rpc = urlfetch.create_rpc(deadline=60)
url = "https://api.parse.com/1/push:443"
request_params = {
"channels": ["blabla"],
"data": {
"alert": "A",
"title":"B",
"badge": "Increment",
"category": "C",
"sound": "default",
"additionalInfos": {"X": "Custom dict"}}
}
headers = {
"X-Parse-Application-Id": parse_app_id,
"X-Parse-REST-API-Key": parse_rest_api_key,
"Content-Type": "application/json"
}
urlfetch.make_fetch_call(rpc,
url,
payload=json.dumps(request_params),
method=urlfetch.POST,
headers=headers)
Run Code Online (Sandbox Code Playgroud)
如果您需要更多帮助,可以随时查看来源
| 归档时间: |
|
| 查看次数: |
559 次 |
| 最近记录: |