Rumah >pembangunan bahagian belakang >Tutorial Python >Cara menggunakan fungsi urllib.request.urlopen() untuk menghantar permintaan POST dalam Python 3.x

Cara menggunakan fungsi urllib.request.urlopen() untuk menghantar permintaan POST dalam Python 3.x

WBOY
WBOYasal
2023-07-31 19:10:592307semak imbas

Cara menggunakan fungsi urllib.request.urlopen() untuk menghantar permintaan POST dalam Python 3.x

Dalam pengaturcaraan rangkaian, selalunya perlu menghantar permintaan POST melalui protokol HTTP untuk berinteraksi dengan pelayan. Python menyediakan fungsi urllib.request.urlopen() untuk menghantar pelbagai permintaan HTTP, termasuk permintaan POST. Artikel ini akan memperincikan cara menggunakan fungsi urllib.request.urlopen() untuk menghantar permintaan POST, dengan contoh kod. Fungsi

urllib.request.urlopen() ialah modul klien HTTP dalam pustaka standard Python, digunakan untuk menghantar permintaan HTTP dan menerima respons HTTP. Tidak seperti permintaan GET, permintaan POST menyerahkan data kepada pelayan dan mengharapkan pelayan memproses data yang diserahkan dengan sewajarnya.

Berikut ialah langkah umum untuk menghantar permintaan POST menggunakan fungsi urllib.request.urlopen():

  1. Import modul urllib.request: Sebelum menggunakan fungsi urllib.request.urlopen(), anda perlu mengimport terlebih dahulu modul tersebut.
import urllib.request
  1. Sediakan data POST: Permintaan POST perlu memasukkan data yang perlu dihantar dalam badan permintaan. Anda boleh menggunakan kamus untuk mewakili data POST, dengan pasangan nilai kunci sebagai data yang akan diserahkan. Di sini kami mengambil menghantar data POST bernama data sebagai contoh.
data = {
    'key1': 'value1',
    'key2': 'value2'
}
  1. Buat objek permintaan: Gunakan fungsi urllib.parse.urlencode() untuk menukar data POST dalam bentuk kamus kepada rentetan, dan hantarkannya ke dalam fungsi urllib.request.Request() untuk mencipta objek permintaan . Juga tentukan URL dan kaedah permintaan sebagai POST.
import urllib.parse

url = 'http://example.com/post'
data = {
    'key1': 'value1',
    'key2': 'value2'
}
data = urllib.parse.urlencode(data).encode()
req = urllib.request.Request(url, data=data, method='POST')
  1. Hantar permintaan dan dapatkan jawapan: Gunakan fungsi urllib.request.urlopen() untuk menghantar permintaan POST dan dapatkan respons daripada pelayan. Kandungan tindak balas boleh dibaca sebagai rentetan dan diproses selanjutnya dengan memanggil kaedah read().
response = urllib.request.urlopen(req)
result = response.read().decode()
print(result)

Dalam langkah di atas, url ialah URL sasaran untuk menghantar permintaan, dan data ialah data POST yang akan diserahkan. Apabila mencipta objek permintaan, fungsi urlencode() digunakan untuk menukar data kepada rentetan yang dikodkan URL, dan kaedah encode() digunakan untuk mengekodnya ke dalam strim bait.

Akhir sekali, gunakan fungsi urlopen() untuk menghantar permintaan dan membaca kandungan respons melalui kaedah read(). Gunakan kaedah nyahkod() untuk menyahkod kandungan respons dan mencetak hasilnya.

Perlu diingat bahawa permintaan POST boleh mengandungi maklumat pengepala permintaan HTTP tambahan. Pengepala permintaan tambahan ini boleh ditetapkan semasa membuat objek permintaan dengan menambahkan parameter pengepala.

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.96 Safari/537.3',
    'Content-Type': 'application/x-www-form-urlencoded'
}

req = urllib.request.Request(url, data=data, headers=headers, method='POST')

Dalam contoh kod di atas, dua pengepala permintaan User-Agent dan Content-Type ditetapkan melalui parameter pengepala.

Ringkasan

Artikel ini memperkenalkan cara menggunakan fungsi urllib.request.urlopen() Python untuk menghantar permintaan POST. Mula-mula import modul urllib.request, kemudian buat objek permintaan dengan data URL dan POST, dan akhirnya gunakan fungsi urlopen() untuk menghantar permintaan dan mendapatkan respons. Dengan menambahkan parameter pengepala, anda juga boleh menetapkan maklumat pengepala permintaan tambahan.

Di atas ialah contoh mudah menghantar permintaan POST menggunakan fungsi urllib.request.urlopen(). Saya harap ia dapat membantu anda memahami cara menghantar permintaan POST dalam Python dan menggunakannya dalam projek sebenar.

Atas ialah kandungan terperinci Cara menggunakan fungsi urllib.request.urlopen() untuk menghantar permintaan POST dalam Python 3.x. 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