我正在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())
为了使异步我想我应该用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)
但我找不到示例如何添加标题..任何建议?谢谢!
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)
如果您需要更多帮助,可以随时查看源代码
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句