解决Google App Engine HTTPS 认证问题

UPDATE(2008-10-21): 目前Google App Engine 已经支持HTTPS.

 

最近玩儿Google App Engine, 遇到一个很大的问题.那就是Google App Engine的Fetch API, 不支持HTTPS认证.

Google App Engine 文档 写道
Note: URL fetching cannot authenticate the server of an https request because there is no certificate trust chain. The proxy accepts all certificates, including self-signed certificates.

 但是很多第三方的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 提供的免费资源, 不用就太浪费了!

 

 

发布了3 篇原创文章 · 获赞 0 · 访问量 2060
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章