在使用M2Crypto SSL时,如何在Python中禁用URL重定向?

在使用M2Crypto SSL时,如何在Python中禁用URL重定向?,python,url,redirect,m2crypto,Python,Url,Redirect,M2crypto,这就是我的代码的样子: url_object = urlparse(url) hostname = url_object.hostname port = url_object.port uri = url_object.path if url_object.path else '/' ctx = SSL.Context() if ctx.load_verify_locations(cafile='ca-bundle.crt') != 1: raise Exception("Could not

这就是我的代码的样子:

url_object = urlparse(url)
hostname = url_object.hostname
port = url_object.port
uri = url_object.path if url_object.path else '/'

ctx = SSL.Context()
if ctx.load_verify_locations(cafile='ca-bundle.crt') != 1: raise Exception("Could not load CA certificates.")
ctx.set_verify(SSL.verify_peer | SSL.verify_fail_if_no_peer_cert, depth=5)
c = httpslib.HTTPSConnection(hostname, port, ssl_context=ctx)
c.request('GET', uri)
data = c.getresponse().read()
c.close()
return data
如何在此代码中禁用url重定向?我希望在上面的代码中有某种方法可以在连接对象“c”上设置此选项


提前感谢您的帮助。

httpslib.HTTPSConnection不会自动重定向。正如Lennart在评论中所说,它是httplib.HTTPConnection的子类,而httplib.HTTPConnection也不重定向。使用httplib进行测试很容易:

import httplib

c = httplib.HTTPConnection('www.heikkitoivonen.net', 80)
c.request('GET', '/deadwinter/disclaimer.html')
data = c.getresponse().read()
c.close()
print data
这张照片是:

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>301 Moved Permanently</title>
</head><body>
<h1>Moved Permanently</h1>
<p>The document has moved <a href="http://www.heikkitoivonen.net/deadwinter/copyright.html">here</a>.</p>
</body></html>

301永久搬迁
永久移除
文档已移动


您必须自己使用http(s)lib处理重定向,例如,请参阅(我不久前编写的一个简单测试框架)中的请求函数。

它真的重定向吗?它是httplib的子类,我已经很久没有使用它了,但我记得它没有自动重定向。。。我老了吗?:-)