Как отключить перенаправление URL в Python при использовании M2Crypto SSL? - PullRequest
0 голосов
/ 06 октября 2009

Вот как выглядит мой код:

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' в приведенном выше коде.

Заранее спасибо за помощь.

1 Ответ

0 голосов
/ 06 октября 2009

httpslib.HTTPSConnection не перенаправляет автоматически. Как говорит Леннарт в комментарии, это подклассы из 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>

Вы должны сами обрабатывать перенаправления с помощью http (s) lib, см., Например, функцию запроса в silmut (простой тестовый фреймворк, который я написал некоторое время назад).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...