几个月前,我匆忙整理了一个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?或者我是否因为必要而被迫使用卷曲?
答案 0 :(得分:-1)
我相信mechanize是您需要的模块。
编辑:mechanize
个对象具有此身份验证方法:add_password(self, url, user, password, realm=None)