2

Python/Django と 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 部分をテストしましたが、このリクエスト スクリプトでのみこのエラーが生成されるインポートです。

助けてくれてありがとう

4

1 に答える 1

1

urllib3 のドキュメントから:

request(method, url, fields=None, headers=None, **urlopen_kw)¶ urlopen() を使用して、使用するメソッドに基づいてフィールドを適切にエンコードしてリクエストを作成します。

たぶん、次のようなことを試すことができます:

r = http.request('POST', "http://myurl:8001/mypath/",
                 headers={'Content-Type': 'application/json'},
                 body=encoded_data)
于 2016-10-18T10:10:45.090 に答える