python urllib2中的自定义方法
使用urllib2,我们是否能够使用“GET”或“POST”以外的方法(当提供数据时) 我翻遍了图书馆,似乎使用GET或POST的决定“方便地”与请求中是否提供了数据有关 例如,我想与一个CouchDB数据库交互,该数据库需要诸如“DEL”、“PUT”之类的方法。我需要urllib2的处理程序,但需要进行自己的方法调用 我不希望将第三方模块导入到我的项目中,比如CouchDB python api。所以请不要走那条路。我的实现必须使用python 2.6附带的模块。(我的设计规范要求使用基本的可移植Python发行版)。在导入外部模块之前,我将使用httplib编写自己的接口python urllib2中的自定义方法,python,methods,urllib2,Python,Methods,Urllib2,使用urllib2,我们是否能够使用“GET”或“POST”以外的方法(当提供数据时) 我翻遍了图书馆,似乎使用GET或POST的决定“方便地”与请求中是否提供了数据有关 例如,我想与一个CouchDB数据库交互,该数据库需要诸如“DEL”、“PUT”之类的方法。我需要urllib2的处理程序,但需要进行自己的方法调用 我不希望将第三方模块导入到我的项目中,比如CouchDB python api。所以请不要走那条路。我的实现必须使用python 2.6附带的模块。(我的设计规范要求使用基本的可
非常感谢您的帮助您可以将urllib2.Request子类化(未经测试) 它可以是:
import urllib2
method = 'PATH'
request = urllib2.Request('http://host.com')
request.get_method = lambda: method()
也就是说,运行时类修改,也称为monkey path。这正是我想要做的。扩展urllib2模块以重写该方法。啊,蟒蛇之美。请求时调用init时的一个更改。。。urllib2.Request.\uuuuu init\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu。。。我已经更新了init以包含self,并且还更改了get_方法以返回超类默认值,而不仅仅是复制它的方法。
import urllib2
method = 'PATH'
request = urllib2.Request('http://host.com')
request.get_method = lambda: method()