python urllib2中的自定义方法
发布时间:2020-12-20 11:15:37 所属栏目:Python 来源:网络整理
导读:使用urllib2,我们能够使用“GET”或“POST”以外的方法(提供数据时)吗? 我挖到了库中,似乎使用GET或POST的决定“方便”与请求中是否提供数据有关. 例如,我想与CouchDB数据库进行交互,这需要诸如’DEL’,’PUT’之类的方法.我想要urllib2的处理程序,但需要自
使用urllib2,我们能够使用“GET”或“POST”以外的方法(提供数据时)吗?
我挖到了库中,似乎使用GET或POST的决定“方便”与请求中是否提供数据有关. 例如,我想与CouchDB数据库进行交互,这需要诸如’DEL’,’PUT’之类的方法.我想要urllib2的处理程序,但需要自己进行方法调用. 我不希望将第三方模块导入我的项目,例如CouchDB python api.所以,请不要走那条路.我的实现必须使用python 2.6附带的模块. (我的设计规范要求使用准系统PortablePython发行版).在导入外部模块之前,我会使用httplib编写自己的接口. 非常感谢你的帮助 解决方法
你可以像这样继承urllib2.Request(未经测试)
import urllib2 class MyRequest(urllib2.Request): GET = 'get' POST = 'post' PUT = 'put' DELETE = 'delete' def __init__(self,url,data=None,headers={},origin_req_host=None,unverifiable=False,method=None): urllib2.Request.__init__(self,data,headers,origin_req_host,unverifiable) self.method = method def get_method(self): if self.method: return self.method return urllib2.Request.get_method(self) opener = urllib2.build_opener(urllib2.HTTPHandler) req = MyRequest('http://yourwebsite.com/put/resource/',method=MyRequest.PUT) resp = opener.open(req) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |