>백엔드 개발 >파이썬 튜토리얼 >요청 라이브러리를 사용하여 Python에서 Multipart/Form-Data 요청을 어떻게 보낼 수 있나요?

요청 라이브러리를 사용하여 Python에서 Multipart/Form-Data 요청을 어떻게 보낼 수 있나요?

Barbara Streisand
Barbara Streisand원래의
2025-01-03 12:09:42749검색

How can I send Multipart/Form-Data requests in Python using the Requests library?

Python에서 요청과 함께 "Multipart/Form-Data" 보내기

Multipart/form-data는 파일 업로드에 사용되는 일반적인 인코딩입니다. 웹 서버에 다른 데이터. Python의 요청 라이브러리를 사용하면 다중 부분/양식 데이터 요청을 쉽게 보낼 수 있습니다.

파일 보내기

파일을 보내려면 다음의 files 매개변수를 사용할 수 있습니다. post() 메소드. 이 매개변수는 키가 양식 필드 이름이고 값이 업로드할 파일 객체인 사전을 기대합니다.

양식 데이터 보내기

파일 외에도 files 매개변수를 사용하여 양식 데이터를 보낼 수도 있습니다. 그러나 파일 매개변수를 지정하면 요청이 기본 application/x-www-form-urlencoded POST 대신 multipart/form-data POST를 전송한다는 점에 유의하는 것이 중요합니다.

파일 매개변수를 사용하면 문자열이나 바이트열 객체를 양식 필드의 값으로 간단히 전달할 수 있습니다. 예:

import requests

files = {'foo': 'bar'}
response = requests.post('http://httpbin.org/post', files=files)

파일 매개변수 사용자 정의

단일 문자열 또는 바이트열 객체. 튜플에는 다음이 포함되어야 합니다.

  • 파일 이름(선택 사항)
  • 콘텐츠
  • 콘텐츠 유형(선택 사항)
  • 추가 헤더(선택 사항)

예:

files = {'foo': (None, 'bar')}  # No filename parameter

동일한 이름으로 여러 필드 보내기

튜플 목록을 값으로 제공하여 동일한 이름으로 여러 필드를 보낼 수도 있습니다. 파일 매개변수. 예:

files = {'foo': [(None, 'bar'), (None, 'baz')]}

Requests-Toolbelt 사용

requests-toolbelt 프로젝트는 멀티파트/양식 데이터 요청 전송 프로세스를 단순화하는 고급 멀티파트 인코더를 제공합니다. . 이 인코더를 사용하면 다음 작업을 수행할 수 있습니다.

  • 열린 파일 개체의 요청 스트리밍
  • 기본적으로 파일 이름 매개변수 생략
  • 멀티파트 헤더에 사용되는 경계 제어

예:

from requests_toolbelt.multipart.encoder import MultipartEncoder

mp_encoder = MultipartEncoder(
    fields={
        'foo': 'bar',
        'spam': ('spam.txt', open('spam.txt', 'rb'), 'text/plain'),
    }
)
headers = {'Content-Type': mp_encoder.content_type}
response = requests.post('http://httpbin.org/post', data=mp_encoder, headers=headers)

위 내용은 요청 라이브러리를 사용하여 Python에서 Multipart/Form-Data 요청을 어떻게 보낼 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.