我试图通过Python 2.7的urllib2模块进行放置请求。当我执行GET时,它工作得很好,但是当我尝试将它变成PUT时,它返回301 http错误。 我的代码是上面:Python:urllib2放置请求返回301错误
opener = urllib2.build_opener(urllib2.HTTPHandler)
req = urllib2.Request(reqUrl)
base64string = base64.encodestring('%s:%s' % (v_username, v_password)).replace('\n', '')
req.add_header("Authorization", "Basic %s" % base64string)
req.add_header("Content-Type", "application/rdf+xml")
req.add_header("Accept", "application/rdf+xml")
req.add_header("OSLC-Core-Version", "2.0")
req.get_method = lambda: 'PUT'
req.allow_redirects=True
url = opener.open(req)
如果我取消行
req.get_method = lambda: 'PUT'
它的工作原理,但它是一个GET请求(或一个职位,如果我通过一些数据),但它必须是一个PUT和我不怎么用这个模块做不同的事情。
的错误是
urllib2.HTTPError: HTTP Error 301: Moved Permanently.
有谁明白这一点比我还多?我是一个REST请求的新手,对我来说有一些特殊的含义。