前提・実現したいこと
python3でRESTAPIを用いてCSVファイルをPOSTしようとしています。
requestsを使用して、HTTPリクエストを実行すると、503エラーが返ってきます。
どのように対応したらよいでしょうか。
APIはBearer認証で、仕様については以下のような記載があります。
<Headers>
Content-Length: 送信ファイルのファイルサイズを含むコンテンツ長
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryO5quBRiT4G7Vm3A1
<Body>
----WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="file1"; filename="/C:/work/test1.jpg"
Content-Type: image/jpeg
(data)
----WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="file2"; filename="/C:/work/test2.jpg"
Content-Type: <Content-Type header here>
発生している問題・エラーメッセージ
503 Service Unavailable
該当のソースコード
import requests HTTP_BOUNDARY = "----WebKitFormBoundaryO5quBRiT4G7Vm3A1" CONTENT_TYPE = "multipart/form-data; boundary="+HTTP_BOUNDARY headers = {'Authorization': 'Bearer XXXXXXXXXXXX', 'Content-Type': CONTENT_TYPE} f_path = '/home/admin/tmp/test.csv' files = {'file': (f_path, open(f_path, 'rb'), 'text/csv')} r_post = requests.post('http://aa.aaaa.jp/api/v1/files', headers=headers, files=files)
試したこと
print(r_post.request.dict)
でリクエストの中身を確認すると、以下のようになっています。
{'method': 'POST', 'url': 'http://aa.aaaa.jp/api/v1/files', 'headers': {'User-Agent': 'python-requests/2.22.0', 'Accept-Encoding': 'gzip, deflate', 'Accept': '/', 'Connection': 'keep-alive', 'Authorization': 'Bearer XXXXXXXXXXXX', 'Content-Type': 'multipart/form-data; boundary=----WebKitFormBoundaryO5quBRiT4G7Vm3A1', 'Content-Length': '255'}, '_cookies': <RequestsCookieJar[]>,
'body': b'--52700114ebd5a929c50d3a2bb08d5673\r\nContent-Disposition: form-data; name="file"; filename="/home/admin/tmp/test.csv"\r\nContent-Type: text/csv\r\n\r\nNo,DATE,TIME,TXT\n0,2021/01/28,10:00:00,test\r\n--52700114ebd5a929c50d3a2bb08d5673--\r\n', 'hooks': {'response': []}, '_body_position': None}
補足情報(FW/ツールのバージョンなど)
Python 3.8.5
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。