对于基于用户和基于证书的身份验证,我是否要使用urllib,urllib2或curl?

时间:2010-10-20 21:03:18

标签: python urllib2 urllib

几个月前,我匆忙整理了一个Python程序,该程序符合我公司的Web服务API。它有三种不同的模式:

1)没有认证的HTTP 2)具有用户名和密码认证的HTTP 3)具有客户端证书认证的HTTPS

我得到了1)与urllib一起工作,但遇到了2)和3)的问题。我没有计算出来,而是计算出正确的命令行参数来卷曲,并通过os.system()执行它。

现在我可以根据经验重新编写这个程序,我不确定是否应该使用urllib,urllib2,或者只是坚持卷曲。

urllib文档提到:

When performing basic authentication, a FancyURLopener instance 
calls its prompt_user_passwd() method. The default implementation 
asks the users for the required     information on the controlling 
terminal. A subclass may override this method to support 
more appropriate behavior if needed.

它还提到了urllib.URLopener()的** x509参数:

Additional keyword parameters, collected in x509, may be used for 
authentication of the client when using the https: scheme. The 
keywords key_file and cert_file are supported to provide an SSL 
key and certificate; both are needed to support client 
authentication.

但urllib2比urllib大一个,所以很自然我想用它代替它。 urllib2文档中包含有关身份验证处理程序的信息,这些信息处理程序似乎是针对上述2)设计的,但没有提及任何客户端证书。

我的问题:我是否想要使用urllib,因为它似乎支持我需要实现的一切?或者我应该坚持卷曲?

感谢。

编辑:也许我的问题不够具体,所以这是另一个镜头。我可以实现我想用urllib做什么吗?还是用urllib2?或者我是否因为必要而被迫使用卷曲?

1 个答案:

答案 0 :(得分:-1)

我相信mechanize是您需要的模块。

编辑:mechanize个对象具有此身份验证方法:add_password(self, url, user, password, realm=None)