2009-10-06 4 views
0

내 코드는 다음과 같습니다.M2Crypto SSL을 사용할 때 Python에서 URL 리디렉션을 비활성화하는 방법은 무엇입니까?

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'에이 옵션을 설정하는 방법이있을 것으로 기대하고 있습니다.

도움을 미리 감사드립니다.

+0

실제로 리디렉션합니까? httplib을 하위 클래스로 사용 했으므로 오랜 시간이 걸렸지 만 자동으로 리디렉션되지는 않았습니다 ... 나는 노인이됩니까? :-) –

답변

0

httpslib.HTTPSConnection은 자동으로 리디렉션하지 않습니다. Lennart와 마찬가지로이 주석에서 httplib.HTTPConnection의 하위 클래스는 리디렉션되지 않습니다. (silmut에서 간단한 테스트를 요청 기능을, 당신은 처리해야

<!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 자신을 리디렉션 예를 들어, 참조 :이 인쇄

import httplib 

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

: HTTPLIB으로 테스트하기 쉬운 프레임 워크 내가 잠시 뒤로 썼다.)

관련 문제