我正在开发一个使用API的应用程序,该API要求我发出第一个Post身份验证请求。
查看身份验证回复,我发现已创建了Cookie:ApiCredentials = ....
所以我认证:
result = urlfetch.fetch(url = url, method = urlfetch.POST)
api_credential = result.headers['set-cookie']
然后我在标题
中创建了一个带有该cookie的请求urlfetch.fetch(url = url, method = urlfetch.GET, headers = {'Cookie': api_credential})
问题是:在开发中一切都很完美,但是当我部署时,它并不起作用。在日志中,我可以看到收到的cookie。
API链接:http://www.sptrans.com.br/desenvolvedores/APIOlhoVivo/Documentacao.aspx?1(葡萄牙语)
答案 0 :(得分:0)
问题中的代码未显示Cookie名称ApiCredentials
。可能是在开发过程中,只有一个cookie,在生产中还有更多,在这种情况下result.headers['set-cookie']
会返回多个以逗号分隔的值。
URL Fetch Response Objects页面建议您通过调用result.header_msg.getheaders('set-cookie')
来检索列表中同名的多个标题,然后在结果列表中找到ApiCredentials
。
在区分大小写的环境中说“Set-Cookie”可能更安全。