질문: 요청 라이브러리를 사용하여 Python에서 다중 부분 양식 데이터를 어떻게 보낼 수 있습니까? 파일을 첨부하는 방법을 이해하지만 그러한 요청에 표준 형식 데이터를 통합하는 데 어려움을 겪고 있습니다.
답변:
요청은 파일을 첨부할 때 다중 부분 양식 데이터를 자동으로 처리합니다. 매개변수가 지정되어 application/x-www-form-urlencoded 대신 multipart/form-data POST 요청이 발생합니다. POST.
구문:
from requests import post response = post( url, files={ "form_field_name": "form_field_value", # No quotes needed for non-string values } )
예:
response = post("http://httpbin.org/post", files={"foo": "bar"}) assert response.status_code == 200
고급 제어:
튜플을 사용하여 맞춤설정 각 부분의 파일 이름, 콘텐츠 유형 및 추가 헤더. 튜플 구성 요소에는 다음이 포함됩니다.
예:
files = {"foo": (None, "bar")} # No filename specified
정렬된 여러 필드:
튜플 목록 사용 동일한 순서가 지정된 필드 또는 여러 필드의 경우 name.
데이터 및 파일 처리:
데이터와 파일을 모두 사용하는 경우 문자열 데이터 매개변수가 우선 적용됩니다. 그렇지 않으면 데이터와 파일이 모두 요청에 결합됩니다.
선택적 라이브러리:
requests-toolbelt 프로젝트는 다음을 허용하는 고급 멀티파트 지원을 제공합니다.
requests-toolbelt의 예:
import MultipartEncoder from requests_toolbelt fields = { "foo": b"bar", # Fields support bytes objects "spam": ("spam.txt", open("spam.txt", "rb"), "text/plain") # Stream files } mp_encoder = MultipartEncoder(fields) response = post( url, data=mp_encoder, headers={"Content-Type": mp_encoder.content_type} )
참고: 요청 도구 벨트 방법의 경우 files= 인수를 사용하지 마세요. MultipartEncoder가 데이터 페이로드로 게시되기 때문입니다.
위 내용은 Python에서 파일 및 표준 형식 데이터와 함께 다중 부분 양식 데이터를 보내는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!