UPDATE(2008-10-21): 目前Google App Engine 已经支持HTTPS.
最近玩儿Google App Engine, 遇到一个很大的问题.那就是Google App Engine的Fetch API, 不支持HTTPS认证.
但是很多第三方的API需要HTTPS认证.比如Delicious的API. 没办法只好研究了一下认证原理,原来只需要在请求的Header里加入认证语句就可以,而Fetch API可以设置请求Header. 也就是按照如下的方式就可以解决:
import base64
import logging
from google.appengine.api import urlfetch
def login(uname, pwd):
#构建请求认证头信息
encoded = base64.b64encode(uname + ':' + pwd)
authstr = "Basic "+encoded
autoheaders = {'Authorization':authstr,}
#需要认证的地址
url = "https://....."
#请求
result = urlfetch.fetch(url,headers = mheaders)
logging.info(result.content)
但这只不过是权宜之计而已, 不知google什么时候会解决这个问题, 或者根本就不想解决.
但是不管怎样, Google 提供的免费资源, 不用就太浪费了!