Python tubuh respons cetak json

Modul ini mendefinisikan kelas yang mengimplementasikan sisi klien dari protokol HTTP dan HTTPS. Biasanya tidak digunakan secara langsung — modul menggunakannya untuk menangani URL yang menggunakan HTTP dan HTTPS

Lihat juga

Paket Permintaan direkomendasikan untuk antarmuka klien HTTP tingkat yang lebih tinggi

Catatan

Dukungan HTTPS hanya tersedia jika Python dikompilasi dengan dukungan SSL (melalui modul)

bukan Emscripten, bukan WASI

Modul ini tidak berfungsi atau tidak tersedia di platform WebAssembly wasm32-emscripten dan

>>> import http.client
>>> conn = http.client.HTTPSConnection("localhost", 8080)
>>> conn.set_tunnel("www.python.org")
>>> conn.request("HEAD","/index.html")
0. Lihat untuk informasi lebih lanjut

Modul ini menyediakan kelas-kelas berikut

kelas http. klien. HTTPConnection(host , port=None , [waktu tunggu , ]source_address=None , blocksize=8192)

Instance mewakili satu transaksi dengan server HTTP. Itu harus dipakai dengan memberikannya host dan nomor port opsional. Jika tidak ada nomor port yang diteruskan, port diekstraksi dari string host jika memiliki bentuk

>>> import http.client
>>> conn = http.client.HTTPSConnection("localhost", 8080)
>>> conn.set_tunnel("www.python.org")
>>> conn.request("HEAD","/index.html")
2, selain itu port HTTP default (80) digunakan. Jika parameter batas waktu opsional diberikan, operasi pemblokiran (seperti upaya koneksi) akan habis setelah beberapa detik (jika tidak diberikan, pengaturan batas waktu default global digunakan). Parameter source_address opsional dapat berupa Tuple dari (host, port) untuk digunakan sebagai alamat sumber tempat koneksi HTTP dibuat. Parameter blockize opsional mengatur ukuran buffer dalam byte untuk mengirim badan pesan seperti file

Misalnya, panggilan berikut ini semua membuat instance yang terhubung ke server di host dan port yang sama

>>> h1 = http.client.HTTPConnection('www.python.org')
>>> h2 = http.client.HTTPConnection('www.python.org:80')
>>> h3 = http.client.HTTPConnection('www.python.org', 80)
>>> h4 = http.client.HTTPConnection('www.python.org', 80, timeout=10)

Berubah di versi 3. 2. source_address telah ditambahkan.

Berubah di versi 3. 4. Parameter ketat telah dihapus. HTTP 0. 9 gaya “Respons Sederhana” tidak lagi didukung.

Berubah di versi 3. 7. parameter ukuran blok telah ditambahkan.

kelas http. klien. HTTPSConnection(host , port=None , key_file=Tidak ada , cert_file=Tidak ada , [waktu tunggu , ]source_address=None , * , context=None , check_hostname=Tidak ada , blocksize=8192)

Subkelas yang menggunakan SSL untuk komunikasi dengan server aman. Port default adalah

>>> import http.client
>>> conn = http.client.HTTPSConnection("localhost", 8080)
>>> conn.set_tunnel("www.python.org")
>>> conn.request("HEAD","/index.html")
4. Jika konteks ditentukan, itu harus berupa contoh yang menjelaskan berbagai opsi SSL

Silakan baca untuk informasi lebih lanjut tentang praktik terbaik

Berubah di versi 3. 2. source_address, context dan check_hostname telah ditambahkan.

Berubah di versi 3. 2. Kelas ini sekarang mendukung host virtual HTTPS jika memungkinkan (yaitu, jika benar).

Berubah di versi 3. 4. Parameter ketat telah dihapus. HTTP 0. 9 gaya “Respons Sederhana” tidak lagi didukung.

Berubah di versi 3. 4. 3. Kelas ini sekarang melakukan semua pemeriksaan sertifikat dan hostname yang diperlukan secara default. Untuk kembali ke perilaku sebelumnya yang belum diverifikasi,

>>> import http.client
>>> conn = http.client.HTTPSConnection("localhost", 8080)
>>> conn.set_tunnel("www.python.org")
>>> conn.request("HEAD","/index.html")
7 dapat diteruskan ke parameter konteks.

Berubah di versi 3. 8. Kelas ini sekarang mengaktifkan TLS 1. 3 untuk konteks default atau ketika cert_file diteruskan dengan konteks khusus.

Berubah di versi 3. 10. Kelas ini sekarang mengirimkan ekstensi ALPN dengan indikator protokol

>>> import http.client
>>> conn = http.client.HTTPSConnection("localhost", 8080)
>>> conn.set_tunnel("www.python.org")
>>> conn.request("HEAD","/index.html")
9 ketika tidak ada konteks yang diberikan. Konteks khusus harus menetapkan protokol ALPN dengan
>>> import http.client
>>> conn = http.client.HTTPSConnection("www.python.org")
>>> conn.request("GET", "/")
>>> r1 = conn.getresponse()
>>> print(r1.status, r1.reason)
200 OK
>>> data1 = r1.read()  # This will return entire content.
>>> # The following example demonstrates reading data in chunks.
>>> conn.request("GET", "/")
>>> r1 = conn.getresponse()
>>> while chunk := r1.read(200):
..     print(repr(chunk))
b'<!doctype html>\n<!--[if"...
...
>>> # Example of an invalid request
>>> conn = http.client.HTTPSConnection("docs.python.org")
>>> conn.request("GET", "/parrot.spam")
>>> r2 = conn.getresponse()
>>> print(r2.status, r2.reason)
404 Not Found
>>> data2 = r2.read()
>>> conn.close()
0.

Tidak digunakan lagi sejak versi 3. 6. key_file dan cert_file tidak digunakan lagi karena konteks. Harap gunakan sebagai gantinya, atau biarkan memilih sertifikat CA tepercaya sistem untuk Anda.

Parameter check_hostname juga tidak digunakan lagi;

kelas http. klien. HTTPResponse(kaus kaki , tingkat debug=0 , metode=Tidak ada , url=Tidak ada)

Kelas yang instansnya dikembalikan setelah koneksi berhasil. Tidak dipakai langsung oleh pengguna

Berubah di versi 3. 4. Parameter ketat telah dihapus. HTTP 0. 9 gaya “Respons Sederhana” tidak lagi didukung.

Modul ini menyediakan fungsi berikut

http. klien. parse_headers(fp)

Parsing header dari penunjuk file fp yang mewakili permintaan/respons HTTP. File tersebut harus berupa pembaca

>>> import http.client
>>> conn = http.client.HTTPSConnection("www.python.org")
>>> conn.request("GET", "/")
>>> r1 = conn.getresponse()
>>> print(r1.status, r1.reason)
200 OK
>>> data1 = r1.read()  # This will return entire content.
>>> # The following example demonstrates reading data in chunks.
>>> conn.request("GET", "/")
>>> r1 = conn.getresponse()
>>> while chunk := r1.read(200):
..     print(repr(chunk))
b'<!doctype html>\n<!--[if"...
...
>>> # Example of an invalid request
>>> conn = http.client.HTTPSConnection("docs.python.org")
>>> conn.request("GET", "/parrot.spam")
>>> r2 = conn.getresponse()
>>> print(r2.status, r2.reason)
404 Not Found
>>> data2 = r2.read()
>>> conn.close()
_4 (mis. e. bukan teks) dan harus memberikan header gaya RFC 2822 yang valid

Fungsi ini mengembalikan instance

>>> import http.client
>>> conn = http.client.HTTPSConnection("www.python.org")
>>> conn.request("GET", "/")
>>> r1 = conn.getresponse()
>>> print(r1.status, r1.reason)
200 OK
>>> data1 = r1.read()  # This will return entire content.
>>> # The following example demonstrates reading data in chunks.
>>> conn.request("GET", "/")
>>> r1 = conn.getresponse()
>>> while chunk := r1.read(200):
..     print(repr(chunk))
b'<!doctype html>\n<!--[if"...
...
>>> # Example of an invalid request
>>> conn = http.client.HTTPSConnection("docs.python.org")
>>> conn.request("GET", "/parrot.spam")
>>> r2 = conn.getresponse()
>>> print(r2.status, r2.reason)
404 Not Found
>>> data2 = r2.read()
>>> conn.close()
_5 yang menampung kolom header, tetapi tanpa payload (sama dengan dan ). Setelah kembali, file pointer fp siap membaca HTTP body

Catatan

tidak mem-parsing baris awal pesan HTTP; . File harus siap untuk membaca baris bidang ini, jadi baris pertama harus sudah digunakan sebelum memanggil fungsi

Pengecualian berikut diajukan sebagaimana mestinya

pengecualian http. klien. Pengecualian HTTP

Kelas dasar dari pengecualian lain dalam modul ini. Ini adalah subkelas dari

pengecualian http. klien. Tidak terhubung

Sebuah subkelas dari

pengecualian http. klien. URL tidak valid

Subkelas dari , dimunculkan jika port diberikan dan non-numerik atau kosong

pengecualian http. klien. Protokol Tidak Dikenal

Sebuah subkelas dari

pengecualian http. klien. Pengodean Transfer Tidak Dikenal

Sebuah subkelas dari

pengecualian http. klien. Mode File yang tidak diimplementasikan

Sebuah subkelas dari

pengecualian http. klien. Tidak lengkapBaca

Sebuah subkelas dari

pengecualian http. klien. Status Koneksi Tidak Benar

Sebuah subkelas dari

pengecualian http. klien. Tidak Dapat Mengirim Permintaan

Sebuah subkelas dari

pengecualian http. klien. Tidak Dapat MengirimHeader

Sebuah subkelas dari

pengecualian http. klien. ResponseNotReady

Sebuah subkelas dari

pengecualian http. klien. BadStatusLine

Sebuah subkelas dari. Dibesarkan jika server merespons dengan kode status HTTP yang tidak kami pahami

pengecualian http. klien. LineTooLong

Sebuah subkelas dari. Dibesarkan jika antrean yang terlalu panjang diterima dalam protokol HTTP dari server

pengecualian http. klien. Terputus Jarak Jauh

Subkelas dari dan. Dibesarkan saat upaya untuk membaca respons menghasilkan tidak ada data yang dibaca dari koneksi, menunjukkan bahwa ujung jarak jauh telah menutup koneksi

Baru di versi 3. 5. Sebelumnya,

>>> import http.client, urllib.parse
>>> params = urllib.parse.urlencode({'@number': 12524, '@type': 'issue', '@action': 'show'})
>>> headers = {"Content-type": "application/x-www-form-urlencoded",
..            "Accept": "text/plain"}
>>> conn = http.client.HTTPConnection("bugs.python.org")
>>> conn.request("POST", "", params, headers)
>>> response = conn.getresponse()
>>> print(response.status, response.reason)
302 Found
>>> data = response.read()
>>> data
b'Redirecting to <a href="https://bugs.python.org/issue12524">https://bugs.python.org/issue12524</a>'
>>> conn.close()
7 dibesarkan.

Konstanta yang didefinisikan dalam modul ini adalah

http. klien. HTTP_PORT

Port default untuk protokol HTTP (selalu

>>> import http.client, urllib.parse
>>> params = urllib.parse.urlencode({'@number': 12524, '@type': 'issue', '@action': 'show'})
>>> headers = {"Content-type": "application/x-www-form-urlencoded",
..            "Accept": "text/plain"}
>>> conn = http.client.HTTPConnection("bugs.python.org")
>>> conn.request("POST", "", params, headers)
>>> response = conn.getresponse()
>>> print(response.status, response.reason)
302 Found
>>> data = response.read()
>>> data
b'Redirecting to <a href="https://bugs.python.org/issue12524">https://bugs.python.org/issue12524</a>'
>>> conn.close()
8)

http. klien. HTTPS_PORT

Port default untuk protokol HTTPS (selalu

>>> import http.client
>>> conn = http.client.HTTPSConnection("localhost", 8080)
>>> conn.set_tunnel("www.python.org")
>>> conn.request("HEAD","/index.html")
4)

http. klien. tanggapan

Kamus ini memetakan HTTP 1. 1 kode status ke nama W3C

Contoh.

>>> # This creates an HTTP request
>>> # with the content of BODY as the enclosed representation
>>> # for the resource http://localhost:8080/file
...
>>> import http.client
>>> BODY = "***filecontents***"
>>> conn = http.client.HTTPConnection("localhost", 8080)
>>> conn.request("PUT", "/file", BODY)
>>> response = conn.getresponse()
>>> print(response.status, response.reason)
200, OK
0 adalah
>>> # This creates an HTTP request
>>> # with the content of BODY as the enclosed representation
>>> # for the resource http://localhost:8080/file
...
>>> import http.client
>>> BODY = "***filecontents***"
>>> conn = http.client.HTTPConnection("localhost", 8080)
>>> conn.request("PUT", "/file", BODY)
>>> response = conn.getresponse()
>>> print(response.status, response.reason)
200, OK
1

Lihat daftar kode status HTTP yang tersedia dalam modul ini sebagai konstanta

Objek Koneksi HTTP

contoh memiliki metode berikut

Koneksi HTTP. permintaan(metode , url, body=None, headers={}, *, encode_chunked=False)

Ini akan mengirim permintaan ke server menggunakan metode metode permintaan HTTP dan url pemilih

Jika badan ditentukan, data yang ditentukan dikirim setelah header selesai. Mungkin a , a , open , atau iterable dari. Jika body adalah string, maka dikodekan sebagai ISO-8859-1, default untuk HTTP. Jika itu adalah objek seperti byte, byte dikirim apa adanya. Jika berupa , isi file dikirim; . Jika objek file adalah turunan dari , data yang dikembalikan oleh metode

>>> # This creates an HTTP request
>>> # with the content of BODY as the enclosed representation
>>> # for the resource http://localhost:8080/file
...
>>> import http.client
>>> BODY = "***filecontents***"
>>> conn = http.client.HTTPConnection("localhost", 8080)
>>> conn.request("PUT", "/file", BODY)
>>> response = conn.getresponse()
>>> print(response.status, response.reason)
200, OK
5 akan dikodekan sebagai ISO-8859-1, jika tidak, data yang dikembalikan oleh
>>> # This creates an HTTP request
>>> # with the content of BODY as the enclosed representation
>>> # for the resource http://localhost:8080/file
...
>>> import http.client
>>> BODY = "***filecontents***"
>>> conn = http.client.HTTPConnection("localhost", 8080)
>>> conn.request("PUT", "/file", BODY)
>>> response = conn.getresponse()
>>> print(response.status, response.reason)
200, OK
5 dikirim apa adanya. Jika body adalah iterable, elemen dari iterable dikirim apa adanya sampai iterable habis

Argumen header harus berupa pemetaan header HTTP tambahan untuk dikirim dengan permintaan

Jika header tidak berisi Content-Length atau Transfer-Encoding, tetapi ada badan permintaan, salah satu bidang header tersebut akan ditambahkan secara otomatis. Jika badan adalah

>>> # This creates an HTTP request
>>> # with the content of BODY as the enclosed representation
>>> # for the resource http://localhost:8080/file
...
>>> import http.client
>>> BODY = "***filecontents***"
>>> conn = http.client.HTTPConnection("localhost", 8080)
>>> conn.request("PUT", "/file", BODY)
>>> response = conn.getresponse()
>>> print(response.status, response.reason)
200, OK
9, header Panjang Konten diatur ke http.client0 untuk metode yang mengharapkan badan (http.client1, http.client2, dan http.client3). Jika body adalah string atau objek mirip byte yang bukan juga a , header Content-Length disetel ke panjangnya. Jenis tubuh lainnya (file dan iterables pada umumnya) akan dikodekan secara chunk, dan header Transfer-Encoding akan secara otomatis disetel alih-alih Content-Length

Argumen encode_chunked hanya relevan jika Transfer-Encoding ditentukan di header. Jika encode_chunked adalah http.client4, objek HTTPConnection mengasumsikan bahwa semua penyandian ditangani oleh kode panggilan. Jika http.client_5, badan akan disandikan potongan

Catatan

Pengkodean transfer terpotong telah ditambahkan ke protokol HTTP versi 1. 1. Kecuali jika server HTTP diketahui menangani HTTP 1. 1, pemanggil harus menentukan Content-Length, atau harus melewati objek mirip byte atau yang bukan juga file sebagai representasi tubuh

Baru di versi 3. 2. body sekarang bisa menjadi iterable.

Berubah di versi 3. 6. Jika Content-Length atau Transfer-Encoding tidak diatur dalam header, file dan objek tubuh yang dapat diubah sekarang dikodekan potongan. Argumen encode_chunked telah ditambahkan. Tidak ada upaya yang dilakukan untuk menentukan Content-Length untuk objek file.

Koneksi HTTP. dapatkan respons()

Harus dipanggil setelah permintaan dikirim untuk mendapatkan respons dari server. Mengembalikan sebuah instance

Catatan

Perhatikan bahwa Anda harus membaca seluruh tanggapan sebelum Anda dapat mengirim permintaan baru ke server

Berubah di versi 3. 5. Jika sebuah atau subclass dimunculkan, objek akan siap untuk terhubung kembali saat permintaan baru dikirim.

Koneksi HTTP. set_debugtingkat(tingkat)

Tetapkan tingkat debug. Level debug default adalah http.client_0, artinya tidak ada hasil debug yang dicetak. Nilai apa pun yang lebih besar dari http.client0 akan menyebabkan semua keluaran debug yang ditentukan saat ini dicetak ke stdout. urllib.request_2 diteruskan ke objek baru yang dibuat

Baru di versi 3. 1

Koneksi HTTP. set_tunnel(host , port=None, headers=None)

Tetapkan host dan porta untuk HTTP Connect Tunneling. Ini memungkinkan menjalankan koneksi melalui server proxy

Argumen host dan port menentukan titik akhir dari koneksi terowongan (mis. e. alamat yang disertakan dalam permintaan CONNECT, bukan alamat server proxy)

Argumen header harus berupa pemetaan header HTTP ekstra untuk dikirim dengan permintaan CONNECT

Misalnya, untuk melakukan tunnel melalui server proxy HTTPS yang berjalan secara lokal pada port 8080, kami akan meneruskan alamat proxy ke konstruktor, dan alamat host yang pada akhirnya ingin kami jangkau ke metode

>>> import http.client
>>> conn = http.client.HTTPSConnection("localhost", 8080)
>>> conn.set_tunnel("www.python.org")
>>> conn.request("HEAD","/index.html")

Baru di versi 3. 2

Koneksi HTTP. hubungkan()

Sambungkan ke server yang ditentukan saat objek dibuat. Secara default, ini dipanggil secara otomatis saat membuat permintaan jika klien belum memiliki koneksi

Memunculkan urllib.request6 dengan argumen urllib.request7, urllib.request8, urllib.request9

Koneksi HTTP. tutup()

Tutup koneksi ke server

Koneksi HTTP. ukuran blok

Ukuran buffer dalam byte untuk mengirim badan pesan seperti file

Baru di versi 3. 7

Sebagai alternatif untuk menggunakan metode ssl_0 yang dijelaskan di atas, Anda juga dapat mengirimkan permintaan Anda langkah demi langkah, dengan menggunakan empat fungsi di bawah ini

Koneksi HTTP. putrequest(metode , url, skip_host=False, skip_accept_encoding=False)

Ini harus menjadi panggilan pertama setelah koneksi ke server dibuat. Ini mengirimkan baris ke server yang terdiri dari string metode, string url, dan versi HTTP (ssl1). Untuk menonaktifkan pengiriman otomatis header ssl_2 atau ssl3 (misalnya untuk menerima pengkodean konten tambahan), tentukan skip_host atau skip_accept_encoding dengan nilai non-False

Koneksi HTTP. putheader(header , argumen . [, ...])

Kirim header gaya RFC 822 ke server. Ini mengirimkan baris ke server yang terdiri dari header, titik dua dan spasi, dan argumen pertama. Jika lebih banyak argumen diberikan, garis lanjutan dikirim, masing-masing terdiri dari tab dan argumen

Koneksi HTTP. endheaders(message_body=Tidak ada, *, encode_chunked=False)

Kirim baris kosong ke server, menandakan akhir dari header. Argumen message_body opsional dapat digunakan untuk meneruskan isi pesan yang terkait dengan permintaan

Jika encode_chunked adalah http.client5, hasil dari setiap iterasi message_body akan dikodekan secara chunk seperti yang ditentukan dalam RFC 7230, Bagian 3. 3. 1. Bagaimana data dikodekan tergantung pada jenis message_body. Jika message_body mengimplementasikan pengkodean akan menghasilkan satu potongan. Jika message_body adalah , setiap iterasi dari message_body akan menghasilkan potongan. Jika message_body adalah a , setiap panggilan ke ssl6 akan menghasilkan potongan. Metode ini secara otomatis menandakan akhir dari data yang disandikan potongan segera setelah message_body

Catatan

Karena spesifikasi pengkodean chunked, chunk kosong yang dihasilkan oleh badan iterator akan diabaikan oleh chunk-encoder. Hal ini untuk menghindari penghentian pembacaan permintaan sebelum waktunya oleh server target karena penyandian yang salah

Baru di versi 3. 6. Dukungan enkode potongan. Parameter encode_chunked telah ditambahkan.

Koneksi HTTP. kirim(data)

Mengirim data ke server. Ini harus digunakan secara langsung hanya setelah metode dipanggil dan sebelum dipanggil

Memunculkan ssl_9 dengan argumen urllib.request7, wasm32-emscripten1

Objek Respons HTTP

Instance membungkus respons HTTP dari server. Ini memberikan akses ke header permintaan dan badan entitas. Responsnya adalah objek yang dapat diubah dan dapat digunakan dalam pernyataan with

Berubah di versi 3. 5. Antarmuka sekarang diimplementasikan dan semua operasi pembacanya didukung.

Respon HTTP. baca([amt])

Membaca dan mengembalikan isi respons, atau hingga amt byte berikutnya

Respon HTTP. membaca(b)

Membaca hingga len(b) byte berikutnya dari badan respons ke dalam buffer b. Mengembalikan jumlah byte yang dibaca

Baru di versi 3. 3

Respon HTTP. getheader(nama , default=None)

Kembalikan nilai nama header, atau default jika tidak ada nama yang cocok dengan header. Jika ada lebih dari satu header dengan nama name, kembalikan semua nilai yang digabungkan dengan ','. Jika default adalah iterable selain string tunggal, elemennya juga dikembalikan dengan koma

Respon HTTP. getheader()

Kembalikan daftar tupel (tajuk, nilai).

Respon HTTP. fileno()

Kembalikan wasm32-emscripten_4 dari soket di bawahnya

Respon HTTP. pesan

Instance

>>> import http.client
>>> conn = http.client.HTTPSConnection("www.python.org")
>>> conn.request("GET", "/")
>>> r1 = conn.getresponse()
>>> print(r1.status, r1.reason)
200 OK
>>> data1 = r1.read()  # This will return entire content.
>>> # The following example demonstrates reading data in chunks.
>>> conn.request("GET", "/")
>>> r1 = conn.getresponse()
>>> while chunk := r1.read(200):
..     print(repr(chunk))
b'<!doctype html>\n<!--[if"...
...
>>> # Example of an invalid request
>>> conn = http.client.HTTPSConnection("docs.python.org")
>>> conn.request("GET", "/parrot.spam")
>>> r2 = conn.getresponse()
>>> print(r2.status, r2.reason)
404 Not Found
>>> data2 = r2.read()
>>> conn.close()
5 berisi header respons.
>>> import http.client
>>> conn = http.client.HTTPSConnection("www.python.org")
>>> conn.request("GET", "/")
>>> r1 = conn.getresponse()
>>> print(r1.status, r1.reason)
200 OK
>>> data1 = r1.read()  # This will return entire content.
>>> # The following example demonstrates reading data in chunks.
>>> conn.request("GET", "/")
>>> r1 = conn.getresponse()
>>> while chunk := r1.read(200):
..     print(repr(chunk))
b'<!doctype html>\n<!--[if"...
...
>>> # Example of an invalid request
>>> conn = http.client.HTTPSConnection("docs.python.org")
>>> conn.request("GET", "/parrot.spam")
>>> r2 = conn.getresponse()
>>> print(r2.status, r2.reason)
404 Not Found
>>> data2 = r2.read()
>>> conn.close()
_5 adalah subkelas dari

Respon HTTP. versi

Versi protokol HTTP yang digunakan oleh server. 10 untuk HTTP/1. 0, 11 untuk HTTP/1. 1

Respon HTTP. url

URL sumber daya diambil, biasanya digunakan untuk menentukan apakah pengalihan diikuti

Respon HTTP. header

Tajuk respons dalam bentuk instance

Respon HTTP. status

Kode status dikembalikan oleh server

Respon HTTP. alasan

Frasa alasan dikembalikan oleh server

Respon HTTP. tingkat debug

Pengait debug. Jika lebih besar dari nol, pesan akan dicetak ke stdout saat respons dibaca dan diuraikan

Respon HTTP. ditutup

Apakah http.client5 jika aliran ditutup

Respon HTTP. geturl()

Tidak digunakan lagi sejak versi 3. 9. Dihapus karena mendukung.

Respon HTTP. info()

Tidak digunakan lagi sejak versi 3. 9. Dihapus karena mendukung.

Respon HTTP. getstatus()

Tidak digunakan lagi sejak versi 3. 9. Dihapus karena mendukung.

Contoh

Berikut adalah contoh sesi yang menggunakan metode

>>> import http.client
>>> conn = http.client.HTTPSConnection("localhost", 8080)
>>> conn.set_tunnel("www.python.org")
>>> conn.request("HEAD","/index.html")
04

>>> import http.client
>>> conn = http.client.HTTPSConnection("www.python.org")
>>> conn.request("GET", "/")
>>> r1 = conn.getresponse()
>>> print(r1.status, r1.reason)
200 OK
>>> data1 = r1.read()  # This will return entire content.
>>> # The following example demonstrates reading data in chunks.
>>> conn.request("GET", "/")
>>> r1 = conn.getresponse()
>>> while chunk := r1.read(200):
..     print(repr(chunk))
b'<!doctype html>\n<!--[if"...
...
>>> # Example of an invalid request
>>> conn = http.client.HTTPSConnection("docs.python.org")
>>> conn.request("GET", "/parrot.spam")
>>> r2 = conn.getresponse()
>>> print(r2.status, r2.reason)
404 Not Found
>>> data2 = r2.read()
>>> conn.close()
_

Berikut adalah contoh sesi yang menggunakan metode

>>> import http.client
>>> conn = http.client.HTTPSConnection("localhost", 8080)
>>> conn.set_tunnel("www.python.org")
>>> conn.request("HEAD","/index.html")
05. Perhatikan bahwa metode
>>> import http.client
>>> conn = http.client.HTTPSConnection("localhost", 8080)
>>> conn.set_tunnel("www.python.org")
>>> conn.request("HEAD","/index.html")
_05 tidak pernah mengembalikan data apa pun

>>> import http.client
>>> conn = http.client.HTTPSConnection("www.python.org")
>>> conn.request("HEAD", "/")
>>> res = conn.getresponse()
>>> print(res.status, res.reason)
200 OK
>>> data = res.read()
>>> print(len(data))
0
>>> data == b''
True

Berikut adalah contoh sesi yang menggunakan metode http.client2

>>> import http.client, urllib.parse
>>> params = urllib.parse.urlencode({'@number': 12524, '@type': 'issue', '@action': 'show'})
>>> headers = {"Content-type": "application/x-www-form-urlencoded",
..            "Accept": "text/plain"}
>>> conn = http.client.HTTPConnection("bugs.python.org")
>>> conn.request("POST", "", params, headers)
>>> response = conn.getresponse()
>>> print(response.status, response.reason)
302 Found
>>> data = response.read()
>>> data
b'Redirecting to <a href="https://bugs.python.org/issue12524">https://bugs.python.org/issue12524</a>'
>>> conn.close()

HTTP sisi klien http.client_1 permintaan sangat mirip dengan permintaan http.client2. Perbedaannya hanya terletak pada sisi server di mana server HTTP akan mengizinkan sumber daya dibuat melalui permintaan http.client1. Perlu dicatat bahwa metode HTTP khusus juga ditangani dengan menyetel atribut metode yang sesuai. Berikut adalah contoh sesi yang menggunakan metode http.client1

Bagaimana cara mencetak respons JSON dengan Python?

Cara Mencetak Objek JSON Dari Permintaan Python .
Kami memuat respons permintaan GET
Kami membuat serial tanggapan menggunakan. metode json()
Kami kemudian menggunakan fungsi dumps() dengan indentasi 4 untuk mencetak respons dengan cantik

Bagaimana cara mendapatkan data dari respons JSON dengan Python?

Cukup jalankan tanggapan. json() , dan hanya itu. tanggapan. json() mengembalikan respons JSON dalam format kamus Python sehingga kita dapat mengakses JSON menggunakan key-value pair.

Bagaimana cara mengonversi respons teks ke JSON dengan Python?

Anda bisa mengubahnya menjadi JSON dengan Python menggunakan json. memuat() fungsi . json. fungsi beban () menerima sebagai input string yang valid dan mengubahnya menjadi kamus Python.

Bagaimana cara mendapatkan respons dalam format JSON?

Untuk mengembalikan JSON dari server, Anda harus menyertakan data JSON dalam isi pesan respons HTTP dan memberikan "Content-Type. tajuk respons aplikasi/json" . Header respons Tipe-Konten memungkinkan klien menginterpretasikan data dalam badan respons dengan benar.