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 提供的免費資源, 不用就太浪費了!