Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah saya boleh menghantar permintaan Multipart/Form-Data dalam Python menggunakan perpustakaan Permintaan?

Bagaimanakah saya boleh menghantar permintaan Multipart/Form-Data dalam Python menggunakan perpustakaan Permintaan?

Barbara Streisand
Barbara Streisandasal
2025-01-03 12:09:42732semak imbas

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

Menghantar "Multipart/Borang-Data" dengan Permintaan dalam Python

Multipart/form-data ialah pengekodan biasa yang digunakan untuk memuat naik fail dan data lain ke pelayan web. Dengan perpustakaan Permintaan dalam Python, anda boleh menghantar permintaan data berbilang bahagian/borang dengan mudah.

Menghantar Fail

Untuk menghantar fail, anda boleh menggunakan parameter fail bagi kaedah post(). Parameter ini menjangkakan kamus yang kuncinya ialah nama medan borang dan nilainya ialah objek fail untuk dimuat naik.

Menghantar Data Borang

Selain fail, anda juga boleh menghantar data borang menggunakan parameter fail. Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa Permintaan akan menghantar POST berbilang bahagian/data borang dan bukannya POST aplikasi lalai/x-www-form-urlencoded POST apabila anda menentukan parameter fail.

Untuk menghantar data borang menggunakan fail, anda hanya boleh menghantar objek rentetan atau bait sebagai nilai medan borang. Contohnya:

import requests

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

Menyesuaikan Parameter Fail

Anda boleh mengawal selanjutnya nama fail, jenis kandungan dan pengepala tambahan untuk setiap fail dengan menggunakan tuple dan bukannya a rentetan tunggal atau objek bait. Tuple hendaklah mengandungi:

  • Nama Fail (pilihan)
  • Kandungan
  • Jenis kandungan (pilihan)
  • Pengepala tambahan (pilihan)

Untuk contoh:

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

Menghantar Berbilang Medan dengan Nama Yang Sama

Anda juga boleh menghantar berbilang medan dengan nama yang sama dengan menyediakan senarai tupel sebagai nilai parameter fail. Contohnya:

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

Menggunakan Requests-Toolbelt

Projek requests-toolbelt menyediakan pengekod berbilang bahagian lanjutan yang memudahkan proses menghantar permintaan berbilang bahagian/borang-data . Dengan pengekod ini, anda boleh:

  • Strim permintaan daripada objek fail terbuka
  • Mengabaikan parameter nama fail secara lalai
  • Mengawal sempadan yang digunakan dalam pengepala berbilang bahagian

Contohnya:

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)

Atas ialah kandungan terperinci Bagaimanakah saya boleh menghantar permintaan Multipart/Form-Data dalam Python menggunakan perpustakaan Permintaan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn