- Apakah Permintaan Python?
- Mengapa Menggunakan Permintaan Python?
- Bagaimana Memasang Permintaan Python?
- Membuat Permintaan Dapatkan & Kirim
- Melewati Parameter Dalam URL
- Kod status
- Kandungan Respons
- Muat Naik Fail Berbilang Bahagian
- Kuki Dan Tajuk
- Objek Sesi
- Kesalahan Dan Pengecualian
Apakah Permintaan Python?
Permintaan Python ditulis oleh Kenneth Reitz dan dilesenkan di bawah apache 2.0. Ia adalah perpustakaan HTTP yang mesra manusia seperti yang disebutkan di halaman dokumentasi rasmi. Ia mudah digunakan dan pada dasarnya digunakan untuk membuat semua permintaan HTTP. Berikut adalah beberapa ciri lanjutan yang disertakan dengan permintaan:- Terus hidup dan penyatuan sambungan
- Domain dan url antarabangsa
- Sesi dengan ketekunan kuki
- Pengesahan SSL gaya penyemak imbas
- Penyahkodan kandungan automatik
- Pengesahan asas / digest
- Kuki kunci / nilai yang elegan
- Penyahmampatan automatik
- Badan tindak balas unicode
- Sokongan proksi HTTP
- Muat naik fail berbilang bahagian
- Muat turun Streaming
- Tamat masa sambungan
- Permintaan yang dipotong
Mengapa Menggunakan Permintaan Python?
Mengenai mengapa kita menggunakan permintaan python? alasannya cukup mudah. Semasa menggunakan permintaan python, anda tidak perlu menambahkan pertanyaan secara manual ke url anda dan data pos pengekodan borang. Ini menjadikan tugas kita lebih mudah ketika membuat permintaan http dalam bentuk apa pun.Sekarang kita sudah biasa dengan permintaan python dan mengapa kita menggunakannya dalam python, mari kita cuba memahami bagaimana kita akan memasang permintaan pada projek atau sistem kita.Bagaimana Memasang Permintaan Python?
Bahagian pemasangan juga sangat mudah. Sekiranya anda memasang pemasangan pipenv pada sistem anda, anda boleh menjalankan perintah berikut di terminal.permintaan pemasangan $ pip
Ini akan memasang pustaka permintaan pada sistem anda. Terdapat satu lagi pendekatan untuk memasang permintaan. Sekiranya anda menggunakan pycharm, anda boleh menambahkan permintaan pada jurubahasa projek dalam tetapan. Ini berfungsi sama seperti terminal sekiranya memasang perpustakaan pada projek kami.Sekarang setelah kita selesai dengan pemasangan, mari kita cuba memahami bagaimana kita akan membuat dan mengirim permintaan di python.Bagaimana Membuat Permintaan & Pengeposan?
Get request pada dasarnya digunakan untuk meminta data dari pelayan. Berikut adalah sintaks untuk membuat permintaan.permintaan import res = request.get ('url') #res adalah objek tindak balas di sini.Permintaan pos digunakan untuk mengirimkan data yang akan diproses ke pelayan. Berikut adalah sintaks untuk membuat permintaan kiriman.
permintaan import payload = {'key1': 'value1'} res = request.post ('url', data = muatan)Setelah mengetahui bagaimana kita dapat membuat permintaan dan mengirim permintaan, mari kita lihat bagaimana kita dapat meneruskan parameter ke url menggunakan permintaan get.
Melewati Parameter Dalam Url
Melewati parameter dalam url semudah membuat permintaan. Berikut adalah contoh untuk meneruskan parameter ke url.permintaan import payload = {'key1': 'value1', 'key2': 'value2'} res = request.get ('url', params = payload) print (res.url) #ini akan mencetak url dengan parameter melalui permintaan get.
Kod status
Kami juga boleh memeriksa kod status, berikut adalah kod untuk memeriksa kod status:
permintaan import res = request.get ('url') cetak (res.status_code ())Sekiranya kod mengembalikan 200, ini bermaksud tidak ada kesalahan dan permintaannya baik-baik saja. Sekiranya kita membuat permintaan yang tidak baik, kod tersebut akan mengembalikan kod seperti 404 atau 505 yang akan menimbulkan ralat http.
Kandungan Respons
Kami juga dapat membaca kandungan respons pelayan. Perpustakaan secara automatik akan menyahkodkan kandungan dari pelayan.permintaan import res = request.get ('url') cetak (res.content)
Permintaan juga mempunyai decoder built-in json.
siri fibonacci dalam c ++
permintaan import res = request.get ('url') print (res.json ()) #ini akan mendapat respons dalam format json
Muat Naik Fail Berbilang Bahagian
Sangat mudah untuk memuat naik fail berbilang bahagian menggunakan permintaan.mengimport fail permintaan = {'file': open ('filename', 'rb')} res = request.post ('url', files = files) print (res.text)Untuk mengirim beberapa fail, kami akan menentukan beberapa fail dalam parameter file.
Kuki Dan Tajuk
Kita dapat melihat tajuk dan kuki respons pelayan menggunakan objek respons. Berikut adalah kod untuk melihat tajuk pelayan.permintaan import res = request.get ('url') cetak (res.headers)Kami juga boleh meneruskan tajuk khusus ke url. Mari lihat kodnya.
import header permintaan = {'key1': 'value1'} res = request.get ('url', headers = headers) cetak (res.headers)Permintaan tidak mengubah kelakuannya berdasarkan tajuk khusus. Mereka hanya dihantar ke permintaan akhir. kuki juga dapat dilihat dengan menggunakan objek tindak balas.
permintaan import #untuk menyebarkan kuki kami sendiri, kami dapat menggunakan parameter kuki kuki = diktit (kuki = 'bekerja') res = permintaan.get ('url', kuki = kuki) cetak (res.text)
Kuki dikembalikan dalam RequestCookieJar, yang bertindak seperti kamus tetapi juga menawarkan antara muka yang lebih lengkap, sesuai untuk digunakan di beberapa domain atau jalur.
Objek Sesi
Objek sesi membolehkan anda mengekalkan parameter tertentu di seluruh permintaan.- Masih ada kuki di semua permintaan yang dibuat dari contoh sesi
- Gunakan penyatuan sambungan urllib3
- Kenaikan prestasi yang ketara
- Objek sesi mempunyai semua kaedah API permintaan utama
s = permintaan.sesi () s.get ('url') res = s.get ('url') cetak (res.text)
Kesalahan Dan Pengecualian
Berikut adalah kesilapan dan pengecualian yang ditimbulkan dalam permintaan ular sawa.- Sekiranya berlaku masalah rangkaian, permintaan akan menimbulkan pengecualian ConnectionError.
- Response.raise_for_status () akan menimbulkan ralat HTTP apabila terdapat kod status yang tidak berjaya.
- Sekiranya terdapat masa tamat, ia akan meningkatkan pengecualian Timeout
- Pengecualian TooManyRedirect dinaikkan jika permintaan melebihi bilangan pengalihan maksimum yang dikonfigurasi.