我試圖通過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請求的新手,對我來說有一些特殊的含義。