2013-10-17 5 views
0

httplib2.Http 클래스의 요청 메소드가 어떤 매개 변수를 사용하는지 궁금합니다. 나는 간단한 get 메소드를 사용하려고 노력하고 있지만 SSL3_GET_SERVER_CERTIFICATE 오류가 발생하기 때문에 사용하는 url이 확인을 필요로하는 인증서를 제공하는 것처럼 보입니다. 그래서 httplib2 라이브러리로 인증서 확인을 무시하라는 요청을 할 수 있는지 궁금합니다. (예 : , 확인할 수없는 매개 변수는 urllib.request입니다.)httplib2.Http.request()의 매개 변수

import httplib2 
    h = httplib2.Http(".cache") 
    h.credentials_add(username, password) 
    resp, content = h.request(url, "GET") 
+0

가능한 매개 변수에 대한 도움말을 보려면, 당신은 단지 [설명서를 참조]에 필요 (http://httplib2.googlecode.com /hg/doc/html/libhttplib2.html#http-objects). 'ctrl-f'를 사용하면 두 번째 질문에 대한 답변도 얻을 수 있습니다. – goncalopp

답변

4

당신은 인증서 확인을 무시 disable_ssl_certificate_validation를 사용할 수 있습니다 여기 내 코드입니다. 아래 샘플을 확인하십시오. 그러나 다음 버그로 인해 Python 3.x과 작동하지 않습니다. 따라서이 문제에 대한 의견에서 권장하는대로 Python33\Lib\site-packages\httplib2\__init__.py을 업데이트해야합니다. 파이썬 3.x를위한

HTTPS request doesn't work when disable_ssl_certificate_validation = True

import httplib2 

h = httplib2.Http(".cache", disable_ssl_certificate_validation=True) 
resp, content = h.request("https://github.com/", "GET") 

패치 :

diff --git a/__init__.py b/__init__.py 
index 65f90ac..4495994 100644 
--- a/__init__.py 
+++ b/__init__.py 
@@ -823,10 +823,13 @@ class HTTPSConnectionWithTimeout(http.client.HTTPSConnection): 
       context.load_cert_chain(cert_file, key_file) 
      if ca_certs: 
       context.load_verify_locations(ca_certs) 
+  check_hostname = True 
+  if disable_ssl_certificate_validation: 
+   check_hostname = False 
     http.client.HTTPSConnection.__init__(
       self, host, port=port, key_file=key_file, 
       cert_file=cert_file, timeout=timeout, context=context, 
-    check_hostname=True) 
+    check_hostname=check_hostname) 


SCHEME_TO_CONNECTION = { 
+0

이것은 내가 찾고있는 것입니다. 고마워, 그것은 나를 많이 도왔다. – Toussah