다음 패턴으로 일부 파일과 매개 변수를 멀티 파트로 POST하려고합니다. 나는 dict과 list를 모두 시도했다. list
은 HTTP 415
입니다. 그래서 나는 dict
으로 앞으로 갔다. 나는 몇 가지 매개 변수뿐만 아니라 일반 이름 '파일'(각각의 파일 이름과 함께) 아래에 여러 개의 파일을 게시하고 싶습니다.파이썬에서의 복잡한 POST 요청 - 멀티 파트 파일 - 압축 할 값이 너무 많습니다.
매개 변수가 제대로 작동되는 문자열은 오류가 파일을했다 딕셔너리는
multipart = {
'param1': 'paramVal1',
'param2': 'paramVal2',
'file': (("file1.xml", ByteIO), ("file1.xml", ByteIO)),
}
사용하여 POST python-requests
requests.post(url='http://localhost:8888/upload',files=multipart)
를 오브젝트 여러 부분에서 통과
데이터를 업로드
오류
File "C:\Python36\lib\site-packages\requests\api.py", line 107, in post
return request('post', url, data=data, json=json, **kwargs)
File "C:\Python36\lib\site-packages\requests\api.py", line 53, in request
return session.request(method=method, url=url, **kwargs)
File "C:\Python36\lib\site-packages\requests\sessions.py", line 454, in request
prep = self.prepare_request(req)
File "C:\Python36\lib\site-packages\requests\sessions.py", line 388, in prepare_request
hooks=merge_hooks(request.hooks, self.hooks),
File "C:\Python36\lib\site-packages\requests\models.py", line 296, in prepare
self.prepare_body(data, files, json)
File "C:\Python36\lib\site-packages\requests\models.py", line 447, in prepare_body
(body, content_type) = self._encode_files(files, data)
File "C:\Python36\lib\site-packages\requests\models.py", line 142, in _encode_files
fn, fp, ft, fh = v
ValueError: too many values to unpack (expected 4)
예상 POST 바디
------WebKitFormBoundaryZ7HAof4KTgAB21YV
Content-Disposition: form-data; name="file"; filename="file1.xml"
Content-Type: text/xml
------WebKitFormBoundaryZ7HAof4KTgAB21YV
Content-Disposition: form-data; name="file"; filename="file2.xml"
Content-Type: text/xml
------WebKitFormBoundaryZ7HAof4KTgAB21YV
Content-Disposition: form-data; name="param1"
paramVal1
------WebKitFormBoundaryZ7HAof4KTgAB21YV
Content-Disposition: form-data; name="param2"
paramVal2
------WebKitFormBoundaryZ7HAof4KTgAB21YV--
나는 문자열 PARAMS와 함께 작업 POST를 얻을 수 있었다. 파일에 문제가 있습니다. 또한이 방법을 전달하면 "file1.xml"및 "file2.xml"이라는 두 개의 POST 이름이 생성되는 반면 POST 이름은 "file" –