2016-10-18 2 views
2

,이 코드파이썬 게시 요청이 Minio 서버 가져 오기 작동하지 않는 내가 파이썬/장고 및 Minio 서버에 POST 요청에 문제가

from django.http import HttpResponse 
import json 
from minio import Minio 

minioClient = Minio('mypath:9000', 
       access_key='mykey', 
       secret_key='mysecret', 
       secure=False) 


def getMessage(request): 
    if request.method == 'POST': 

     data = json.loads(request.body.decode('utf-8')) 

     for obj in data['files']: 
      ...do some stuff.... 

      minioClient.fget_object(myvar, myvar2, '/tmp/processing') 

    return HttpResponse(file) 

나는 경우 문제는 요청이 작동하지 않습니다 것을에게 있습니다 처음에는 가져 오기를 제거하지 않아서 이유를 이해할 수 없습니다. 이 발생하는 오류입니다 :

HTTPConnectionPool(host='myhost', port=8001): 
Max retries exceeded with url: /myurl/ 
(Caused NewConnectionError 
('<requests.packages.urllib3.connection.HTTPConnection object at 0x7fcbeab21160>: 
Failed to establish a new connection: [Errno 111] Connection refused',)) 

이 요청이 하나 만드는 스크립트입니다

.... some code.... 
try: 
    r = requests.post("http://myurl:8001/mypath/", data=my_data, timeout=1) 
except Exception as e: 
    print(e) 

이미 제한 시간을 증가 해봤지만 작동 물론 아니에요, Minio 부분을 다른 스크립트에서 테스트했는데 가져 오기는이 요청 스크립트에서만이 오류를 생성합니다. urllib3에 대한 문서의 도움

+0

https://github.com/minio/minio-py/issues을 -에 문제가있는 경우 우리가 유효성을 검사하는 문제를여십시오 우리의 암호. – Harshavardhana

답변

1

에 대한

감사 :

요청 (방법은, URL 필드 = 없음, 헤더 = 없음, ** urlopen_kw) ¶) (urlopen 사용하여 요청을하지 말라 사용 된 방법에 따라 기반의 필드를 적절히 인코딩해야합니다.

아마 당신은이 같은 시도 할 수 :

r = http.request('POST', "http://myurl:8001/mypath/", 
       headers={'Content-Type': 'application/json'}, 
       body=encoded_data) 
+0

불행히도이 코드는 작동하지 않습니다. ( –

+0

서버에 무언가를 게시하면 데이터 만 게시 할 수 있습니다. 쿠키, csrf 토큰과 같은 적절한 헤더 및 기타 항목을 포함해야합니다. 서버가 HTTPS를 사용하면 보안 연결을 설정해야합니다. , 서버가 귀하의 요청에 잘못된 것으로 의심하기 때문에 작동하지 않습니다. 의심 스럽습니다. 다른 옵션을 시도하십시오. –

+0

팁으로, 당신이 모를 수도 있습니다. 크롬을 사용하면 개발자 도구로 갈 수 있습니다 -> 위에 있습니다. 왼쪽의 네트워크 버튼은 모든 요청이며, 웹 페이지로 이동할 때 크롬이 사용하는 것을 볼 수 있으며,이 정보를 복사 할 수 있습니다 –