Pustaka
>>> requests.get['//api.github.com']
6 adalah standar de facto untuk membuat permintaan HTTP dengan Python. Ini mengabstraksi kerumitan pembuatan permintaan di balik API yang indah dan sederhana sehingga Anda dapat berfokus untuk berinteraksi dengan layanan dan menggunakan data dalam aplikasi AndaSepanjang artikel ini, Anda akan melihat beberapa fitur paling berguna yang ditawarkan
>>> requests.get['//api.github.com']
6 serta cara menyesuaikan dan mengoptimalkan fitur tersebut untuk berbagai situasi yang mungkin Anda temui. Anda juga akan mempelajari cara menggunakan >>> requests.get['//api.github.com']
6 dengan cara yang efisien serta cara mencegah permintaan ke layanan eksternal memperlambat aplikasi AndaDalam tutorial ini, Anda akan mempelajari caranya
- Buat permintaan menggunakan metode HTTP yang paling umum
- Sesuaikan header dan data permintaan Anda, menggunakan string kueri dan isi pesan
- Periksa data dari permintaan dan tanggapan Anda
- Buat permintaan yang diautentikasi
- Konfigurasikan permintaan Anda untuk membantu mencegah aplikasi Anda dicadangkan atau melambat
Meskipun saya telah mencoba memasukkan sebanyak mungkin informasi yang Anda perlukan untuk memahami fitur dan contoh yang disertakan dalam artikel ini, saya menganggap pengetahuan umum yang sangat mendasar tentang HTTP. Meskipun demikian, Anda mungkin masih bisa mengikuti dengan baik
Sekarang setelah selesai, mari selami dan lihat bagaimana Anda dapat menggunakan
>>> requests.get['//api.github.com']
6 dalam aplikasi AndaIkuti Kuis. Uji pengetahuan Anda dengan kuis "Permintaan HTTP Dengan Perpustakaan" "permintaan" interaktif kami. Setelah selesai Anda akan menerima skor sehingga Anda dapat melacak kemajuan belajar Anda dari waktu ke waktu
Ikuti Kuis »
Memulai Dengan >>> requests.get['//api.github.com']
6
>>> requests.get['//api.github.com']
Mari kita mulai dengan menginstal pustaka
>>> requests.get['//api.github.com']
6. Untuk melakukannya, jalankan perintah berikut$ pip install requests
_Jika Anda lebih suka menggunakan Pipenv untuk mengelola paket Python, Anda dapat menjalankan perintah berikut
$ pipenv install requests
Setelah
>>> requests.get['//api.github.com']
6 diinstal, Anda dapat menggunakannya di aplikasi Anda. Mengimpor >>> requests.get['//api.github.com']
_6 terlihat seperti iniimport requests
Sekarang setelah Anda siap, saatnya untuk memulai perjalanan Anda melalui
>>> requests.get['//api.github.com']
6. Tujuan pertama Anda adalah mempelajari cara membuat permintaan >>> response = requests.get['//api.github.com']
5Hilangkan iklanPermintaan GET
seperti
>>> response = requests.get['//api.github.com']
5 dan >>> response = requests.get['//api.github.com']
7, tentukan tindakan yang ingin Anda lakukan saat membuat permintaan HTTP. Selain >>> response = requests.get['//api.github.com']
5 dan >>> response = requests.get['//api.github.com']
7, ada beberapa metode umum lainnya yang akan Anda gunakan nanti dalam tutorial iniSalah satu metode HTTP yang paling umum adalah
>>> response = requests.get['//api.github.com']
5. Metode >>> response = requests.get['//api.github.com']
_5 menunjukkan bahwa Anda mencoba untuk mendapatkan atau mengambil data dari sumber tertentu. Untuk membuat permintaan >>> response = requests.get['//api.github.com']
_5, aktifkan >>> response.status_code
200
3Untuk menguji ini, Anda dapat membuat permintaan
>>> response = requests.get['//api.github.com']
_5 ke GitHub dengan menghubungi >>> response.status_code
200
5 dengan URL berikut>>> ________0______
Selamat. Anda telah membuat permintaan pertama Anda. Mari selami lebih dalam tanggapan dari permintaan itu
Responnya
>>> response.status_code
200
_6 adalah objek yang ampuh untuk memeriksa hasil permintaan. Mari buat permintaan yang sama lagi, tetapi kali ini simpan nilai yang dikembalikan dalam variabel sehingga Anda dapat melihat lebih dekat atribut dan perilakunya>>>
>>> response = requests.get['//api.github.com']
_Dalam contoh ini, Anda telah mengambil nilai pengembalian
>>> response.status_code
200
5, yang merupakan turunan dari >>> response.status_code
200
6, dan menyimpannya dalam variabel bernama >>> response.status_code
200
9. Anda sekarang dapat menggunakan >>> response.status_code
200
_9 untuk melihat banyak informasi tentang hasil permintaan >>> response = requests.get['//api.github.com']
5 AndaKode Status
Sedikit informasi pertama yang dapat Anda kumpulkan dari
>>> response.status_code
200
6 adalah kode status. Kode status memberi tahu Anda tentang status permintaanMisalnya, status
if response.status_code == 200:
print['Success!']
elif response.status_code == 404:
print['Not Found.']
_3 berarti permintaan Anda berhasil, sedangkan status if response.status_code == 200:
print['Success!']
elif response.status_code == 404:
print['Not Found.']
4 berarti sumber daya yang Anda cari tidak ditemukan. Ada banyak kemungkinan kode status lainnya untuk memberi Anda wawasan khusus tentang apa yang terjadi dengan permintaan AndaDengan mengakses
if response.status_code == 200:
print['Success!']
elif response.status_code == 404:
print['Not Found.']
_5, Anda dapat melihat kode status yang dikembalikan oleh server>>>
>>> response.status_code
200
_if response.status_code == 200:
print['Success!']
elif response.status_code == 404:
print['Not Found.']
5 mengembalikan if response.status_code == 200:
print['Success!']
elif response.status_code == 404:
print['Not Found.']
7, yang berarti permintaan Anda berhasil dan server merespons dengan data yang Anda mintaTerkadang, Anda mungkin ingin menggunakan informasi ini untuk membuat keputusan dalam kode Anda
if response.status_code == 200:
print['Success!']
elif response.status_code == 404:
print['Not Found.']
Dengan logika ini, jika server mengembalikan kode status ________32______7, program Anda akan mencetak
if response.status_code == 200:
print['Success!']
elif response.status_code == 404:
print['Not Found.']
9. Jika hasilnya adalah if response:
print['Success!']
else:
print['An error has occurred.']
_0, program Anda akan mencetak if response:
print['Success!']
else:
print['An error has occurred.']
1>>> requests.get['//api.github.com']
6 selangkah lebih maju dalam menyederhanakan proses ini untuk Anda. Jika Anda menggunakan >>> response.status_code
200
6 contoh dalam ekspresi bersyarat, itu akan dievaluasi menjadi if response:
print['Success!']
else:
print['An error has occurred.']
4 jika kode status antara if response.status_code == 200:
print['Success!']
elif response.status_code == 404:
print['Not Found.']
7 dan if response:
print['Success!']
else:
print['An error has occurred.']
6, dan if response:
print['Success!']
else:
print['An error has occurred.']
7 jika tidakOleh karena itu, Anda dapat menyederhanakan contoh terakhir dengan menulis ulang pernyataan
if response:
print['Success!']
else:
print['An error has occurred.']
8if response:
print['Success!']
else:
print['An error has occurred.']
Detil Teknis. Hal ini dimungkinkan karena pada tanggal
>>> response.status_code
200
6Ini berarti bahwa perilaku default
>>> response.status_code
200
_6 telah didefinisikan ulang untuk memperhitungkan kode status saat menentukan nilai kebenaran objekIngatlah bahwa metode ini tidak memverifikasi bahwa kode status sama dengan
if response.status_code == 200:
print['Success!']
elif response.status_code == 404:
print['Not Found.']
7. Alasan untuk ini adalah bahwa kode status lain dalam rentang if response.status_code == 200:
print['Success!']
elif response.status_code == 404:
print['Not Found.']
7 hingga if response:
print['Success!']
else:
print['An error has occurred.']
6, seperti import requests
from requests.exceptions import HTTPError
for url in ['//api.github.com', '//api.github.com/invalid']:
try:
response = requests.get[url]
# If the response was successful, no Exception will be raised
response.raise_for_status[]
except HTTPError as http_err:
print[f'HTTP error occurred: {http_err}'] # Python 3.6
except Exception as err:
print[f'Other error occurred: {err}'] # Python 3.6
else:
print['Success!']
5 dan import requests
from requests.exceptions import HTTPError
for url in ['//api.github.com', '//api.github.com/invalid']:
try:
response = requests.get[url]
# If the response was successful, no Exception will be raised
response.raise_for_status[]
except HTTPError as http_err:
print[f'HTTP error occurred: {http_err}'] # Python 3.6
except Exception as err:
print[f'Other error occurred: {err}'] # Python 3.6
else:
print['Success!']
6, juga dianggap berhasil dalam arti bahwa mereka memberikan respons yang dapat diterapkanMisalnya,
import requests
from requests.exceptions import HTTPError
for url in ['//api.github.com', '//api.github.com/invalid']:
try:
response = requests.get[url]
# If the response was successful, no Exception will be raised
response.raise_for_status[]
except HTTPError as http_err:
print[f'HTTP error occurred: {http_err}'] # Python 3.6
except Exception as err:
print[f'Other error occurred: {err}'] # Python 3.6
else:
print['Success!']
_7 memberi tahu Anda bahwa respons berhasil, tetapi tidak ada konten untuk ditampilkan di badan pesanJadi, pastikan Anda menggunakan singkatan praktis ini hanya jika Anda ingin mengetahui apakah permintaan secara umum berhasil dan kemudian, jika perlu, tangani respons dengan tepat berdasarkan kode status
Katakanlah Anda tidak ingin memeriksa kode status respons dalam pernyataan
if response:
print['Success!']
else:
print['An error has occurred.']
8. Sebaliknya, Anda ingin mengajukan pengecualian jika permintaan tidak berhasil. Anda dapat melakukan ini menggunakan import requests
from requests.exceptions import HTTPError
for url in ['//api.github.com', '//api.github.com/invalid']:
try:
response = requests.get[url]
# If the response was successful, no Exception will be raised
response.raise_for_status[]
except HTTPError as http_err:
print[f'HTTP error occurred: {http_err}'] # Python 3.6
except Exception as err:
print[f'Other error occurred: {err}'] # Python 3.6
else:
print['Success!']
_9import requests
from requests.exceptions import HTTPError
for url in ['//api.github.com', '//api.github.com/invalid']:
try:
response = requests.get[url]
# If the response was successful, no Exception will be raised
response.raise_for_status[]
except HTTPError as http_err:
print[f'HTTP error occurred: {http_err}'] # Python 3.6
except Exception as err:
print[f'Other error occurred: {err}'] # Python 3.6
else:
print['Success!']
Jika Anda meminta
import requests
from requests.exceptions import HTTPError
for url in ['//api.github.com', '//api.github.com/invalid']:
try:
response = requests.get[url]
# If the response was successful, no Exception will be raised
response.raise_for_status[]
except HTTPError as http_err:
print[f'HTTP error occurred: {http_err}'] # Python 3.6
except Exception as err:
print[f'Other error occurred: {err}'] # Python 3.6
else:
print['Success!']
_9, >>> response = requests.get['//api.github.com']
>>> response.content
b'{"current_user_url":"//api.github.com/user","current_user_authorizations_html_url":"//github.com/settings/connections/applications{/client_id}","authorizations_url":"//api.github.com/authorizations","code_search_url":"//api.github.com/search/code?q={query}{&page,per_page,sort,order}","commit_search_url":"//api.github.com/search/commits?q={query}{&page,per_page,sort,order}","emails_url":"//api.github.com/user/emails","emojis_url":"//api.github.com/emojis","events_url":"//api.github.com/events","feeds_url":"//api.github.com/feeds","followers_url":"//api.github.com/user/followers","following_url":"//api.github.com/user/following{/target}","gists_url":"//api.github.com/gists{/gist_id}","hub_url":"//api.github.com/hub","issue_search_url":"//api.github.com/search/issues?q={query}{&page,per_page,sort,order}","issues_url":"//api.github.com/issues","keys_url":"//api.github.com/user/keys","notifications_url":"//api.github.com/notifications","organization_repositories_url":"//api.github.com/orgs/{org}/repos{?type,page,per_page,sort}","organization_url":"//api.github.com/orgs/{org}","public_gists_url":"//api.github.com/gists/public","rate_limit_url":"//api.github.com/rate_limit","repository_url":"//api.github.com/repos/{owner}/{repo}","repository_search_url":"//api.github.com/search/repositories?q={query}{&page,per_page,sort,order}","current_user_repositories_url":"//api.github.com/user/repos{?type,page,per_page,sort}","starred_url":"//api.github.com/user/starred{/owner}{/repo}","starred_gists_url":"//api.github.com/gists/starred","team_url":"//api.github.com/teams","user_url":"//api.github.com/users/{user}","user_organizations_url":"//api.github.com/user/orgs","user_repositories_url":"//api.github.com/users/{user}/repos{?type,page,per_page,sort}","user_search_url":"//api.github.com/search/users?q={query}{&page,per_page,sort,order}"}'
1 akan dimunculkan untuk kode status tertentu. Jika kode status menunjukkan permintaan yang berhasil, program akan melanjutkan tanpa pengecualian itu dimunculkanBacaan lebih lanjut. Jika Anda tidak terbiasa dengan Python 3. F-string 6, saya mendorong Anda untuk memanfaatkannya karena ini adalah cara yang bagus untuk menyederhanakan string yang telah diformat
Sekarang, Anda tahu banyak tentang cara menangani kode status dari respons yang Anda dapatkan kembali dari server. Namun, saat Anda membuat permintaan
>>> response = requests.get['//api.github.com']
_5, Anda jarang hanya peduli dengan kode status respons. Biasanya, Anda ingin melihat lebih banyak. Selanjutnya, Anda akan melihat cara melihat data aktual yang dikirim kembali oleh server dalam isi responsHilangkan iklanIsi
Tanggapan dari permintaan
>>> response = requests.get['//api.github.com']
_5 sering memiliki beberapa informasi berharga, yang dikenal sebagai payload, di badan pesan. Menggunakan atribut dan metode >>> response.status_code
200
6, Anda dapat melihat muatan dalam berbagai format berbedaUntuk melihat konten tanggapan di
>>> response = requests.get['//api.github.com']
>>> response.content
b'{"current_user_url":"//api.github.com/user","current_user_authorizations_html_url":"//github.com/settings/connections/applications{/client_id}","authorizations_url":"//api.github.com/authorizations","code_search_url":"//api.github.com/search/code?q={query}{&page,per_page,sort,order}","commit_search_url":"//api.github.com/search/commits?q={query}{&page,per_page,sort,order}","emails_url":"//api.github.com/user/emails","emojis_url":"//api.github.com/emojis","events_url":"//api.github.com/events","feeds_url":"//api.github.com/feeds","followers_url":"//api.github.com/user/followers","following_url":"//api.github.com/user/following{/target}","gists_url":"//api.github.com/gists{/gist_id}","hub_url":"//api.github.com/hub","issue_search_url":"//api.github.com/search/issues?q={query}{&page,per_page,sort,order}","issues_url":"//api.github.com/issues","keys_url":"//api.github.com/user/keys","notifications_url":"//api.github.com/notifications","organization_repositories_url":"//api.github.com/orgs/{org}/repos{?type,page,per_page,sort}","organization_url":"//api.github.com/orgs/{org}","public_gists_url":"//api.github.com/gists/public","rate_limit_url":"//api.github.com/rate_limit","repository_url":"//api.github.com/repos/{owner}/{repo}","repository_search_url":"//api.github.com/search/repositories?q={query}{&page,per_page,sort,order}","current_user_repositories_url":"//api.github.com/user/repos{?type,page,per_page,sort}","starred_url":"//api.github.com/user/starred{/owner}{/repo}","starred_gists_url":"//api.github.com/gists/starred","team_url":"//api.github.com/teams","user_url":"//api.github.com/users/{user}","user_organizations_url":"//api.github.com/user/orgs","user_repositories_url":"//api.github.com/users/{user}/repos{?type,page,per_page,sort}","user_search_url":"//api.github.com/search/users?q={query}{&page,per_page,sort,order}"}'
5, gunakan >>> response = requests.get['//api.github.com']
>>> response.content
b'{"current_user_url":"//api.github.com/user","current_user_authorizations_html_url":"//github.com/settings/connections/applications{/client_id}","authorizations_url":"//api.github.com/authorizations","code_search_url":"//api.github.com/search/code?q={query}{&page,per_page,sort,order}","commit_search_url":"//api.github.com/search/commits?q={query}{&page,per_page,sort,order}","emails_url":"//api.github.com/user/emails","emojis_url":"//api.github.com/emojis","events_url":"//api.github.com/events","feeds_url":"//api.github.com/feeds","followers_url":"//api.github.com/user/followers","following_url":"//api.github.com/user/following{/target}","gists_url":"//api.github.com/gists{/gist_id}","hub_url":"//api.github.com/hub","issue_search_url":"//api.github.com/search/issues?q={query}{&page,per_page,sort,order}","issues_url":"//api.github.com/issues","keys_url":"//api.github.com/user/keys","notifications_url":"//api.github.com/notifications","organization_repositories_url":"//api.github.com/orgs/{org}/repos{?type,page,per_page,sort}","organization_url":"//api.github.com/orgs/{org}","public_gists_url":"//api.github.com/gists/public","rate_limit_url":"//api.github.com/rate_limit","repository_url":"//api.github.com/repos/{owner}/{repo}","repository_search_url":"//api.github.com/search/repositories?q={query}{&page,per_page,sort,order}","current_user_repositories_url":"//api.github.com/user/repos{?type,page,per_page,sort}","starred_url":"//api.github.com/user/starred{/owner}{/repo}","starred_gists_url":"//api.github.com/gists/starred","team_url":"//api.github.com/teams","user_url":"//api.github.com/users/{user}","user_organizations_url":"//api.github.com/user/orgs","user_repositories_url":"//api.github.com/users/{user}/repos{?type,page,per_page,sort}","user_search_url":"//api.github.com/search/users?q={query}{&page,per_page,sort,order}"}'
6>>>
>>> response = requests.get['//api.github.com']
>>> response.content
b'{"current_user_url":"//api.github.com/user","current_user_authorizations_html_url":"//github.com/settings/connections/applications{/client_id}","authorizations_url":"//api.github.com/authorizations","code_search_url":"//api.github.com/search/code?q={query}{&page,per_page,sort,order}","commit_search_url":"//api.github.com/search/commits?q={query}{&page,per_page,sort,order}","emails_url":"//api.github.com/user/emails","emojis_url":"//api.github.com/emojis","events_url":"//api.github.com/events","feeds_url":"//api.github.com/feeds","followers_url":"//api.github.com/user/followers","following_url":"//api.github.com/user/following{/target}","gists_url":"//api.github.com/gists{/gist_id}","hub_url":"//api.github.com/hub","issue_search_url":"//api.github.com/search/issues?q={query}{&page,per_page,sort,order}","issues_url":"//api.github.com/issues","keys_url":"//api.github.com/user/keys","notifications_url":"//api.github.com/notifications","organization_repositories_url":"//api.github.com/orgs/{org}/repos{?type,page,per_page,sort}","organization_url":"//api.github.com/orgs/{org}","public_gists_url":"//api.github.com/gists/public","rate_limit_url":"//api.github.com/rate_limit","repository_url":"//api.github.com/repos/{owner}/{repo}","repository_search_url":"//api.github.com/search/repositories?q={query}{&page,per_page,sort,order}","current_user_repositories_url":"//api.github.com/user/repos{?type,page,per_page,sort}","starred_url":"//api.github.com/user/starred{/owner}{/repo}","starred_gists_url":"//api.github.com/gists/starred","team_url":"//api.github.com/teams","user_url":"//api.github.com/users/{user}","user_organizations_url":"//api.github.com/user/orgs","user_repositories_url":"//api.github.com/users/{user}/repos{?type,page,per_page,sort}","user_search_url":"//api.github.com/search/users?q={query}{&page,per_page,sort,order}"}'
_Meskipun
>>> response = requests.get['//api.github.com']
>>> response.content
b'{"current_user_url":"//api.github.com/user","current_user_authorizations_html_url":"//github.com/settings/connections/applications{/client_id}","authorizations_url":"//api.github.com/authorizations","code_search_url":"//api.github.com/search/code?q={query}{&page,per_page,sort,order}","commit_search_url":"//api.github.com/search/commits?q={query}{&page,per_page,sort,order}","emails_url":"//api.github.com/user/emails","emojis_url":"//api.github.com/emojis","events_url":"//api.github.com/events","feeds_url":"//api.github.com/feeds","followers_url":"//api.github.com/user/followers","following_url":"//api.github.com/user/following{/target}","gists_url":"//api.github.com/gists{/gist_id}","hub_url":"//api.github.com/hub","issue_search_url":"//api.github.com/search/issues?q={query}{&page,per_page,sort,order}","issues_url":"//api.github.com/issues","keys_url":"//api.github.com/user/keys","notifications_url":"//api.github.com/notifications","organization_repositories_url":"//api.github.com/orgs/{org}/repos{?type,page,per_page,sort}","organization_url":"//api.github.com/orgs/{org}","public_gists_url":"//api.github.com/gists/public","rate_limit_url":"//api.github.com/rate_limit","repository_url":"//api.github.com/repos/{owner}/{repo}","repository_search_url":"//api.github.com/search/repositories?q={query}{&page,per_page,sort,order}","current_user_repositories_url":"//api.github.com/user/repos{?type,page,per_page,sort}","starred_url":"//api.github.com/user/starred{/owner}{/repo}","starred_gists_url":"//api.github.com/gists/starred","team_url":"//api.github.com/teams","user_url":"//api.github.com/users/{user}","user_organizations_url":"//api.github.com/user/orgs","user_repositories_url":"//api.github.com/users/{user}/repos{?type,page,per_page,sort}","user_search_url":"//api.github.com/search/users?q={query}{&page,per_page,sort,order}"}'
_6 memberi Anda akses ke byte mentah dari muatan respons, Anda sering ingin mengonversinya menjadi string menggunakan pengkodean karakter seperti UTF-8. >>> response.status_code
200
9 akan melakukannya untuk Anda saat Anda mengakses >>> response = requests.get['//api.github.com']
>>> response.content
b'{"current_user_url":"//api.github.com/user","current_user_authorizations_html_url":"//github.com/settings/connections/applications{/client_id}","authorizations_url":"//api.github.com/authorizations","code_search_url":"//api.github.com/search/code?q={query}{&page,per_page,sort,order}","commit_search_url":"//api.github.com/search/commits?q={query}{&page,per_page,sort,order}","emails_url":"//api.github.com/user/emails","emojis_url":"//api.github.com/emojis","events_url":"//api.github.com/events","feeds_url":"//api.github.com/feeds","followers_url":"//api.github.com/user/followers","following_url":"//api.github.com/user/following{/target}","gists_url":"//api.github.com/gists{/gist_id}","hub_url":"//api.github.com/hub","issue_search_url":"//api.github.com/search/issues?q={query}{&page,per_page,sort,order}","issues_url":"//api.github.com/issues","keys_url":"//api.github.com/user/keys","notifications_url":"//api.github.com/notifications","organization_repositories_url":"//api.github.com/orgs/{org}/repos{?type,page,per_page,sort}","organization_url":"//api.github.com/orgs/{org}","public_gists_url":"//api.github.com/gists/public","rate_limit_url":"//api.github.com/rate_limit","repository_url":"//api.github.com/repos/{owner}/{repo}","repository_search_url":"//api.github.com/search/repositories?q={query}{&page,per_page,sort,order}","current_user_repositories_url":"//api.github.com/user/repos{?type,page,per_page,sort}","starred_url":"//api.github.com/user/starred{/owner}{/repo}","starred_gists_url":"//api.github.com/gists/starred","team_url":"//api.github.com/teams","user_url":"//api.github.com/users/{user}","user_organizations_url":"//api.github.com/user/orgs","user_repositories_url":"//api.github.com/users/{user}/repos{?type,page,per_page,sort}","user_search_url":"//api.github.com/search/users?q={query}{&page,per_page,sort,order}"}'
9>>>
$ pipenv install requests
0Karena decoding
>>> response = requests.get['//api.github.com']
>>> response.content
b'{"current_user_url":"//api.github.com/user","current_user_authorizations_html_url":"//github.com/settings/connections/applications{/client_id}","authorizations_url":"//api.github.com/authorizations","code_search_url":"//api.github.com/search/code?q={query}{&page,per_page,sort,order}","commit_search_url":"//api.github.com/search/commits?q={query}{&page,per_page,sort,order}","emails_url":"//api.github.com/user/emails","emojis_url":"//api.github.com/emojis","events_url":"//api.github.com/events","feeds_url":"//api.github.com/feeds","followers_url":"//api.github.com/user/followers","following_url":"//api.github.com/user/following{/target}","gists_url":"//api.github.com/gists{/gist_id}","hub_url":"//api.github.com/hub","issue_search_url":"//api.github.com/search/issues?q={query}{&page,per_page,sort,order}","issues_url":"//api.github.com/issues","keys_url":"//api.github.com/user/keys","notifications_url":"//api.github.com/notifications","organization_repositories_url":"//api.github.com/orgs/{org}/repos{?type,page,per_page,sort}","organization_url":"//api.github.com/orgs/{org}","public_gists_url":"//api.github.com/gists/public","rate_limit_url":"//api.github.com/rate_limit","repository_url":"//api.github.com/repos/{owner}/{repo}","repository_search_url":"//api.github.com/search/repositories?q={query}{&page,per_page,sort,order}","current_user_repositories_url":"//api.github.com/user/repos{?type,page,per_page,sort}","starred_url":"//api.github.com/user/starred{/owner}{/repo}","starred_gists_url":"//api.github.com/gists/starred","team_url":"//api.github.com/teams","user_url":"//api.github.com/users/{user}","user_organizations_url":"//api.github.com/user/orgs","user_repositories_url":"//api.github.com/users/{user}/repos{?type,page,per_page,sort}","user_search_url":"//api.github.com/search/users?q={query}{&page,per_page,sort,order}"}'
_5 ke $ pipenv install requests
01 memerlukan skema encoding, >>> requests.get['//api.github.com']
6 akan mencoba menebak berdasarkan header respons jika Anda tidak menentukannya. Anda dapat memberikan penyandian eksplisit dengan menyetel $ pipenv install requests
03 sebelum mengakses >>> response = requests.get['//api.github.com']
>>> response.content
b'{"current_user_url":"//api.github.com/user","current_user_authorizations_html_url":"//github.com/settings/connections/applications{/client_id}","authorizations_url":"//api.github.com/authorizations","code_search_url":"//api.github.com/search/code?q={query}{&page,per_page,sort,order}","commit_search_url":"//api.github.com/search/commits?q={query}{&page,per_page,sort,order}","emails_url":"//api.github.com/user/emails","emojis_url":"//api.github.com/emojis","events_url":"//api.github.com/events","feeds_url":"//api.github.com/feeds","followers_url":"//api.github.com/user/followers","following_url":"//api.github.com/user/following{/target}","gists_url":"//api.github.com/gists{/gist_id}","hub_url":"//api.github.com/hub","issue_search_url":"//api.github.com/search/issues?q={query}{&page,per_page,sort,order}","issues_url":"//api.github.com/issues","keys_url":"//api.github.com/user/keys","notifications_url":"//api.github.com/notifications","organization_repositories_url":"//api.github.com/orgs/{org}/repos{?type,page,per_page,sort}","organization_url":"//api.github.com/orgs/{org}","public_gists_url":"//api.github.com/gists/public","rate_limit_url":"//api.github.com/rate_limit","repository_url":"//api.github.com/repos/{owner}/{repo}","repository_search_url":"//api.github.com/search/repositories?q={query}{&page,per_page,sort,order}","current_user_repositories_url":"//api.github.com/user/repos{?type,page,per_page,sort}","starred_url":"//api.github.com/user/starred{/owner}{/repo}","starred_gists_url":"//api.github.com/gists/starred","team_url":"//api.github.com/teams","user_url":"//api.github.com/users/{user}","user_organizations_url":"//api.github.com/user/orgs","user_repositories_url":"//api.github.com/users/{user}/repos{?type,page,per_page,sort}","user_search_url":"//api.github.com/search/users?q={query}{&page,per_page,sort,order}"}'
9>>>
$ pipenv install requests
1Jika Anda melihat responsnya, Anda akan melihat bahwa itu sebenarnya adalah konten JSON berseri. Untuk mendapatkan kamus, Anda dapat mengambil
$ pipenv install requests
01 yang Anda ambil dari >>> response = requests.get['//api.github.com']
>>> response.content
b'{"current_user_url":"//api.github.com/user","current_user_authorizations_html_url":"//github.com/settings/connections/applications{/client_id}","authorizations_url":"//api.github.com/authorizations","code_search_url":"//api.github.com/search/code?q={query}{&page,per_page,sort,order}","commit_search_url":"//api.github.com/search/commits?q={query}{&page,per_page,sort,order}","emails_url":"//api.github.com/user/emails","emojis_url":"//api.github.com/emojis","events_url":"//api.github.com/events","feeds_url":"//api.github.com/feeds","followers_url":"//api.github.com/user/followers","following_url":"//api.github.com/user/following{/target}","gists_url":"//api.github.com/gists{/gist_id}","hub_url":"//api.github.com/hub","issue_search_url":"//api.github.com/search/issues?q={query}{&page,per_page,sort,order}","issues_url":"//api.github.com/issues","keys_url":"//api.github.com/user/keys","notifications_url":"//api.github.com/notifications","organization_repositories_url":"//api.github.com/orgs/{org}/repos{?type,page,per_page,sort}","organization_url":"//api.github.com/orgs/{org}","public_gists_url":"//api.github.com/gists/public","rate_limit_url":"//api.github.com/rate_limit","repository_url":"//api.github.com/repos/{owner}/{repo}","repository_search_url":"//api.github.com/search/repositories?q={query}{&page,per_page,sort,order}","current_user_repositories_url":"//api.github.com/user/repos{?type,page,per_page,sort}","starred_url":"//api.github.com/user/starred{/owner}{/repo}","starred_gists_url":"//api.github.com/gists/starred","team_url":"//api.github.com/teams","user_url":"//api.github.com/users/{user}","user_organizations_url":"//api.github.com/user/orgs","user_repositories_url":"//api.github.com/users/{user}/repos{?type,page,per_page,sort}","user_search_url":"//api.github.com/search/users?q={query}{&page,per_page,sort,order}"}'
9 dan deserialize menggunakan. Namun, cara yang lebih sederhana untuk menyelesaikan tugas ini adalah dengan menggunakan $ pipenv install requests
08>>>
$ pipenv install requests
2$ pipenv install requests
_09 dari nilai pengembalian $ pipenv install requests
08 adalah kamus, sehingga Anda dapat mengakses nilai dalam objek dengan kunciAnda dapat melakukan banyak hal dengan kode status dan badan pesan. Namun, jika Anda memerlukan informasi lebih lanjut, seperti metadata tentang respons itu sendiri, Anda perlu melihat header respons
Header
Header respons dapat memberi Anda informasi yang berguna, seperti jenis konten payload respons dan batas waktu berapa lama untuk meng-cache respons. Untuk melihat tajuk ini, akses
$ pipenv install requests
_11>>>
$ pipenv install requests
3$ pipenv install requests
11 mengembalikan objek mirip kamus, memungkinkan Anda untuk mengakses nilai header dengan kunci. Misalnya, untuk melihat jenis konten payload respons, Anda dapat mengakses $ pipenv install requests
13>>>
$ pipenv install requests
4Ada sesuatu yang istimewa tentang objek header seperti kamus ini. Spesifikasi HTTP mendefinisikan tajuk agar tidak peka huruf besar-kecil, yang berarti kami dapat mengakses tajuk ini tanpa mengkhawatirkan kapitalisasinya
>>>
$ pipenv install requests
5Apakah Anda menggunakan kunci
$ pipenv install requests
14 atau $ pipenv install requests
15, Anda akan mendapatkan nilai yang samaSekarang, Anda telah mempelajari dasar-dasar tentang
>>> response.status_code
200
6. Anda telah melihat atribut dan metodenya yang paling berguna beraksi. Mari mundur selangkah dan lihat bagaimana respons Anda berubah saat Anda menyesuaikan permintaan >>> response = requests.get['//api.github.com']
5 AndaHilangkan iklanParameter String Kueri
Salah satu cara umum untuk menyesuaikan permintaan
>>> response = requests.get['//api.github.com']
_5 adalah dengan meneruskan nilai melalui parameter string kueri di URL. Untuk melakukan ini menggunakan >>> response.status_code
200
_5, Anda meneruskan data ke $ pipenv install requests
20. Misalnya, Anda dapat menggunakan API Penelusuran GitHub untuk mencari pustaka >>> requests.get['//api.github.com']
6$ pipenv install requests
6Dengan meneruskan kamus
$ pipenv install requests
22 ke parameter $ pipenv install requests
20 dari $ pipenv install requests
24, Anda dapat mengubah hasil yang berasal dari Search APIAnda dapat mengirimkan
$ pipenv install requests
20 ke >>> response.status_code
200
5 dalam bentuk kamus, seperti yang baru saja Anda lakukan, atau sebagai daftar tupel>>>
$ pipenv install requests
7Anda bahkan dapat memberikan nilai sebagai
>>> response = requests.get['//api.github.com']
>>> response.content
b'{"current_user_url":"//api.github.com/user","current_user_authorizations_html_url":"//github.com/settings/connections/applications{/client_id}","authorizations_url":"//api.github.com/authorizations","code_search_url":"//api.github.com/search/code?q={query}{&page,per_page,sort,order}","commit_search_url":"//api.github.com/search/commits?q={query}{&page,per_page,sort,order}","emails_url":"//api.github.com/user/emails","emojis_url":"//api.github.com/emojis","events_url":"//api.github.com/events","feeds_url":"//api.github.com/feeds","followers_url":"//api.github.com/user/followers","following_url":"//api.github.com/user/following{/target}","gists_url":"//api.github.com/gists{/gist_id}","hub_url":"//api.github.com/hub","issue_search_url":"//api.github.com/search/issues?q={query}{&page,per_page,sort,order}","issues_url":"//api.github.com/issues","keys_url":"//api.github.com/user/keys","notifications_url":"//api.github.com/notifications","organization_repositories_url":"//api.github.com/orgs/{org}/repos{?type,page,per_page,sort}","organization_url":"//api.github.com/orgs/{org}","public_gists_url":"//api.github.com/gists/public","rate_limit_url":"//api.github.com/rate_limit","repository_url":"//api.github.com/repos/{owner}/{repo}","repository_search_url":"//api.github.com/search/repositories?q={query}{&page,per_page,sort,order}","current_user_repositories_url":"//api.github.com/user/repos{?type,page,per_page,sort}","starred_url":"//api.github.com/user/starred{/owner}{/repo}","starred_gists_url":"//api.github.com/gists/starred","team_url":"//api.github.com/teams","user_url":"//api.github.com/users/{user}","user_organizations_url":"//api.github.com/user/orgs","user_repositories_url":"//api.github.com/users/{user}/repos{?type,page,per_page,sort}","user_search_url":"//api.github.com/search/users?q={query}{&page,per_page,sort,order}"}'
5>>>
$ pipenv install requests
8String kueri berguna untuk parameterisasi
>>> response = requests.get['//api.github.com']
5 permintaan. Anda juga dapat menyesuaikan permintaan Anda dengan menambahkan atau memodifikasi header yang Anda kirimHeader Permintaan
Untuk menyesuaikan header, Anda meneruskan kamus header HTTP ke
>>> response.status_code
200
5 menggunakan parameter $ pipenv install requests
30. Misalnya, Anda dapat mengubah permintaan penelusuran sebelumnya untuk menyorot istilah penelusuran yang cocok di hasil dengan menentukan jenis media $ pipenv install requests
31 di header $ pipenv install requests
32$ pipenv install requests
_9Header
$ pipenv install requests
_32 memberi tahu server jenis konten apa yang dapat ditangani oleh aplikasi Anda. Dalam hal ini, karena Anda mengharapkan istilah pencarian yang cocok disorot, Anda menggunakan nilai tajuk $ pipenv install requests
34, yang merupakan tajuk milik GitHub $ pipenv install requests
32 di mana kontennya adalah format JSON khususSebelum Anda mempelajari lebih banyak cara untuk menyesuaikan permintaan, mari kita perluas wawasan dengan menjelajahi metode HTTP lainnya
Metode HTTP Lainnya
Selain
>>> response = requests.get['//api.github.com']
_5, metode HTTP populer lainnya termasuk >>> response = requests.get['//api.github.com']
7, $ pipenv install requests
38, $ pipenv install requests
39, $ pipenv install requests
40, $ pipenv install requests
41, dan $ pipenv install requests
42. >>> requests.get['//api.github.com']
6 menyediakan metode, dengan tanda tangan yang mirip dengan >>> response.status_code
200
5, untuk masing-masing metode HTTP ini>>>
import requests
0Setiap panggilan fungsi membuat permintaan ke layanan
$ pipenv install requests
_45 menggunakan metode HTTP yang sesuai. Untuk setiap metode, Anda dapat memeriksa respons mereka dengan cara yang sama seperti sebelumnya>>>
import requests
1Header, badan respons, kode status, dan lainnya dikembalikan di
>>> response.status_code
200
6 untuk setiap metode. Selanjutnya Anda akan melihat lebih dekat pada metode >>> response = requests.get['//api.github.com']
7, $ pipenv install requests
38, dan $ pipenv install requests
41 dan mempelajari perbedaannya dari jenis permintaan lainnyaHilangkan iklanBadan Pesan
Menurut spesifikasi HTTP, permintaan
>>> response = requests.get['//api.github.com']
7, $ pipenv install requests
38, dan $ pipenv install requests
41 yang kurang umum meneruskan datanya melalui badan pesan, bukan melalui parameter dalam string kueri. Menggunakan >>> requests.get['//api.github.com']
_6, Anda akan meneruskan muatan ke parameter $ pipenv install requests
54 fungsi yang sesuai$ pipenv install requests
54 mengambil kamus, daftar tupel, byte, atau objek seperti file. Anda ingin menyesuaikan data yang Anda kirimkan dalam isi permintaan Anda dengan kebutuhan khusus layanan yang Anda gunakan untuk berinteraksiMisalnya, jika jenis konten permintaan Anda adalah
$ pipenv install requests
56, Anda dapat mengirim data formulir sebagai kamus>>>
import requests
2Anda juga dapat mengirim data yang sama sebagai daftar tupel
>>>
import requests
3Namun, jika Anda perlu mengirim data JSON, Anda dapat menggunakan parameter
$ pipenv install requests
57. Saat Anda mengirimkan data JSON melalui $ pipenv install requests
57, >>> requests.get['//api.github.com']
6 akan membuat serial data Anda dan menambahkan header $ pipenv install requests
13 yang benar untuk Andahttpbin. org adalah sumber yang bagus yang dibuat oleh penulis
>>> requests.get['//api.github.com']
6, Kenneth Reitz. Ini adalah layanan yang menerima permintaan pengujian dan merespons dengan data tentang permintaan tersebut. Misalnya, Anda dapat menggunakannya untuk memeriksa permintaan >>> response = requests.get['//api.github.com']
7 dasar>>>
import requests
4Anda dapat melihat dari respons bahwa server menerima data dan header permintaan Anda saat Anda mengirimkannya.
>>> requests.get['//api.github.com']
6 juga memberikan informasi ini kepada Anda dalam bentuk $ pipenv install requests
64Memeriksa Permintaan Anda
Saat Anda membuat permintaan, perpustakaan
>>> requests.get['//api.github.com']
_6 menyiapkan permintaan sebelum benar-benar mengirimkannya ke server tujuan. Persiapan permintaan mencakup hal-hal seperti memvalidasi header dan membuat serial konten JSONAnda dapat melihat
$ pipenv install requests
_64 dengan mengakses $ pipenv install requests
67>>>
import requests
5Memeriksa
$ pipenv install requests
_64 memberi Anda akses ke semua jenis informasi tentang permintaan yang dibuat seperti payload, URL, header, autentikasi, dan lainnyaSejauh ini, Anda telah membuat banyak jenis permintaan, tetapi semuanya memiliki satu kesamaan. itu adalah permintaan yang tidak diautentikasi ke API publik. Banyak layanan yang mungkin Anda temui ingin Anda mengautentikasi dengan cara tertentu
Autentikasi
Otentikasi membantu layanan memahami siapa Anda. Biasanya, Anda memberikan kredensial Anda ke server dengan meneruskan data melalui header
$ pipenv install requests
69 atau header khusus yang ditentukan oleh layanan. Semua fungsi permintaan yang Anda lihat sampai saat ini menyediakan parameter yang disebut $ pipenv install requests
70, yang memungkinkan Anda meneruskan kredensial AndaSalah satu contoh API yang memerlukan autentikasi adalah API GitHub. Titik akhir ini memberikan informasi tentang profil pengguna yang diautentikasi. Untuk membuat permintaan ke Authenticated User API, Anda dapat mengirimkan nama pengguna dan kata sandi GitHub Anda dalam sebuah Tuple ke
>>> response.status_code
200
5>>>
import requests
6Permintaan berhasil jika kredensial yang Anda berikan di tuple ke
$ pipenv install requests
70 valid. Jika Anda mencoba membuat permintaan ini tanpa kredensial, Anda akan melihat bahwa kode statusnya adalah $ pipenv install requests
73>>>
import requests
7Saat Anda meneruskan nama pengguna dan kata sandi Anda dalam tupel ke parameter
$ pipenv install requests
70, >>> requests.get['//api.github.com']
6 menerapkan kredensial menggunakan skema autentikasi akses Dasar HTTP di bawah tendaOleh karena itu, Anda dapat membuat permintaan yang sama dengan mengirimkan kredensial autentikasi Dasar eksplisit menggunakan
$ pipenv install requests
76>>>
import requests
8Meskipun Anda tidak perlu eksplisit untuk autentikasi Dasar, Anda mungkin ingin mengautentikasi menggunakan metode lain.
>>> requests.get['//api.github.com']
6 menyediakan metode otentikasi lain di luar kotak seperti $ pipenv install requests
78 dan $ pipenv install requests
79Anda bahkan dapat menyediakan mekanisme autentikasi Anda sendiri. Untuk melakukannya, Anda harus terlebih dahulu membuat subkelas
$ pipenv install requests
80. Kemudian, Anda menerapkan $ pipenv install requests
_81import requests
_9Di sini, mekanisme
$ pipenv install requests
82 kustom Anda menerima token, lalu menyertakan token tersebut di header $ pipenv install requests
83 permintaan AndaMekanisme autentikasi yang buruk dapat menyebabkan kerentanan keamanan, jadi kecuali layanan memerlukan mekanisme autentikasi khusus untuk beberapa alasan, Anda akan selalu ingin menggunakan skema autentikasi yang telah dicoba dan benar seperti Basic atau OAuth
Saat Anda memikirkan tentang keamanan, mari pertimbangkan untuk berurusan dengan Sertifikat SSL menggunakan
>>> requests.get['//api.github.com']
6Hilangkan iklanVerifikasi Sertifikat SSL
Setiap kali data yang Anda coba kirim atau terima bersifat sensitif, keamanan menjadi penting. Cara Anda berkomunikasi dengan situs aman melalui HTTP adalah dengan membuat koneksi terenkripsi menggunakan SSL, yang berarti memverifikasi Sertifikat SSL server target sangat penting.
Kabar baiknya adalah
>>> requests.get['//api.github.com']
_6 melakukan ini untuk Anda secara default. Namun, ada beberapa kasus di mana Anda mungkin ingin mengubah perilaku iniJika Anda ingin menonaktifkan verifikasi Sertifikat SSL, Anda meneruskan
if response:
print['Success!']
else:
print['An error has occurred.']
7 ke parameter $ pipenv install requests
87 dari fungsi permintaan>>>
>>> requests.get['//api.github.com']
0>>> requests.get['//api.github.com']
6 bahkan memperingatkan Anda ketika Anda membuat permintaan yang tidak aman untuk membantu Anda menjaga keamanan data AndaCatatan. untuk memberikan Otoritas Sertifikat. Ini memungkinkan
>>> requests.get['//api.github.com']
6 mengetahui otoritas mana yang dapat dipercaya. Oleh karena itu, Anda harus sering memperbarui $ pipenv install requests
_90 untuk menjaga koneksi Anda seaman mungkinPertunjukan
Saat menggunakan
>>> requests.get['//api.github.com']
_6, khususnya di lingkungan aplikasi produksi, penting untuk mempertimbangkan implikasi kinerja. Fitur seperti kontrol waktu tunggu, sesi, dan batas coba lagi dapat membantu Anda menjaga agar aplikasi tetap berjalan dengan lancarTimeout
Saat Anda membuat permintaan sebaris ke layanan eksternal, sistem Anda harus menunggu respons sebelum melanjutkan. Jika aplikasi Anda menunggu terlalu lama untuk respons tersebut, permintaan ke layanan Anda dapat dicadangkan, pengalaman pengguna Anda dapat terganggu, atau pekerjaan latar belakang Anda dapat macet
Secara default,
>>> requests.get['//api.github.com']
6 akan menunggu tanggapan tanpa batas waktu, jadi Anda harus selalu menentukan durasi batas waktu untuk mencegah hal ini terjadi. Untuk menyetel batas waktu permintaan, gunakan parameter $ pipenv install requests
95. $ pipenv install requests
95 dapat berupa bilangan bulat atau float yang mewakili jumlah detik untuk menunggu respons sebelum waktu habis>>>
>>> requests.get['//api.github.com']
1Dalam permintaan pertama, permintaan akan habis setelah 1 detik. Dalam permintaan kedua, permintaan akan habis setelah 3. 05 detik
ke
$ pipenv install requests
_95 dengan elemen pertama adalah batas waktu koneksi [waktu yang memungkinkan klien untuk membuat koneksi ke server], dan elemen kedua adalah batas waktu baca [waktu menunggu respons setelah klien Anda membuat koneksi >>>
>>> requests.get['//api.github.com']
2Jika permintaan membuat koneksi dalam waktu 2 detik dan menerima data dalam waktu 5 detik setelah koneksi dibuat, maka respons akan dikembalikan seperti sebelumnya. Jika waktu permintaan habis, maka fungsi akan memunculkan pengecualian
$ pipenv install requests
98>>> requests.get['//api.github.com']
_3Program Anda dapat menangkap pengecualian
$ pipenv install requests
_98 dan meresponsnya dengan sesuaiObjek Sesi
Hingga saat ini, Anda telah berurusan dengan API
>>> requests.get['//api.github.com']
6 tingkat tinggi seperti >>> response.status_code
200
5 dan import requests
02. Fungsi-fungsi ini adalah abstraksi dari apa yang terjadi saat Anda mengajukan permintaan. Mereka menyembunyikan detail implementasi seperti bagaimana koneksi dikelola sehingga Anda tidak perlu mengkhawatirkannyaDi bawah abstraksi itu ada kelas yang disebut
import requests
03. Jika Anda perlu menyempurnakan kontrol Anda atas bagaimana permintaan dibuat atau meningkatkan kinerja permintaan Anda, Anda mungkin perlu menggunakan instans import requests
03 secara langsungSesi digunakan untuk mempertahankan parameter di seluruh permintaan. Misalnya, jika Anda ingin menggunakan autentikasi yang sama untuk beberapa permintaan, Anda dapat menggunakan satu sesi
>>> requests.get['//api.github.com']
_4Setiap kali Anda membuat permintaan dengan
import requests
_05, setelah diinisialisasi dengan kredensial autentikasi, kredensial akan dipertahankanOptimalisasi kinerja utama sesi datang dalam bentuk koneksi yang persisten. Saat aplikasi Anda membuat koneksi ke server menggunakan
import requests
03, koneksi tersebut tetap berada di kumpulan koneksi. Saat aplikasi Anda ingin terhubung ke server yang sama lagi, itu akan menggunakan kembali koneksi dari kumpulan daripada membuat yang baruHilangkan iklanMax Coba Ulang
Saat permintaan gagal, Anda mungkin ingin aplikasi Anda mencoba kembali permintaan yang sama. Namun,
>>> requests.get['//api.github.com']
6 tidak akan melakukan ini untuk Anda secara default. Untuk menerapkan fungsi ini, Anda perlu menerapkan customTransport Adapter memungkinkan Anda menentukan sekumpulan konfigurasi per layanan yang berinteraksi dengan Anda. Misalnya, Anda ingin semua permintaan
import requests
08 mencoba lagi tiga kali sebelum akhirnya menaikkan import requests
09. Anda akan membuat Transport Adapter, menyetel parameter import requests
10, dan memasangnya ke import requests
03 yang sudah ada>>> requests.get['//api.github.com']
5Saat Anda memasang
import requests
_12, import requests
13, ke import requests
05, import requests
05 akan mematuhi konfigurasinya untuk setiap permintaan ke https. // api. github. comWaktu tunggu, Adaptor Transportasi, dan sesi adalah untuk menjaga agar kode Anda tetap efisien dan ketahanan aplikasi Anda
Kesimpulan
Anda telah belajar jauh tentang perpustakaan
>>> requests.get['//api.github.com']
6 Python yang kuatAnda sekarang bisa
- Buat permintaan menggunakan berbagai metode HTTP yang berbeda seperti
5,>>> response = requests.get['//api.github.com']
7, dan>>> response = requests.get['//api.github.com']
38$ pipenv install requests
- Sesuaikan permintaan Anda dengan memodifikasi header, autentikasi, string kueri, dan badan pesan
- Periksa data yang Anda kirim ke server dan data yang dikirim kembali oleh server kepada Anda
- Bekerja dengan verifikasi Sertifikat SSL
- Gunakan
6 secara efektif menggunakan>>> requests.get['//api.github.com']
10,import requests
95, Sesi, dan Adaptor Transportasi$ pipenv install requests
Karena Anda telah mempelajari cara menggunakan
>>> requests.get['//api.github.com']
_6, Anda diperlengkapi untuk menjelajahi dunia layanan web yang luas dan membangun aplikasi luar biasa menggunakan data menarik yang mereka sediakanIkuti Kuis. Uji pengetahuan Anda dengan kuis "Permintaan HTTP Dengan Perpustakaan" "permintaan" interaktif kami. Setelah selesai Anda akan menerima skor sehingga Anda dapat melacak kemajuan belajar Anda dari waktu ke waktu
Ikuti Kuis »
Tandai sebagai Selesai
Tonton Sekarang Tutorial ini memiliki kursus video terkait yang dibuat oleh tim Real Python. Tonton bersama dengan tutorial tertulis untuk memperdalam pemahaman Anda. Membuat Permintaan HTTP Dengan Python
🐍 Trik Python 💌
Dapatkan Trik Python singkat & manis yang dikirim ke kotak masuk Anda setiap beberapa hari. Tidak pernah ada spam. Berhenti berlangganan kapan saja. Dikuratori oleh tim Real Python
Kirimi Saya Trik Python »
Tentang Alex Ronquillo
Alex Ronquillo adalah Insinyur Perangkat Lunak di lab. Dia adalah seorang Pythonista yang rajin yang juga bersemangat dalam menulis dan mengembangkan game
» Lebih lanjut tentang AlexSetiap tutorial di Real Python dibuat oleh tim pengembang sehingga memenuhi standar kualitas tinggi kami. Anggota tim yang mengerjakan tutorial ini adalah
Aldren
Brad
Joanna
Master Keterampilan Python Dunia Nyata Dengan Akses Tanpa Batas ke Python Nyata
Bergabunglah dengan kami dan dapatkan akses ke ribuan tutorial, kursus video langsung, dan komunitas pakar Pythonista
Tingkatkan Keterampilan Python Anda »
Guru Keterampilan Python Dunia Nyata
Dengan Akses Tak Terbatas ke Real Python
Bergabunglah dengan kami dan dapatkan akses ke ribuan tutorial, kursus video langsung, dan komunitas ahli Pythonista
Tingkatkan Keterampilan Python Anda »
Bagaimana menurut anda?
Nilai artikel ini
Tweet Bagikan Bagikan EmailApa takeaway # 1 Anda atau hal favorit yang Anda pelajari?
Kiat Berkomentar. Komentar yang paling berguna adalah yang ditulis dengan tujuan belajar dari atau membantu siswa lain. dan dapatkan jawaban atas pertanyaan umum di portal dukungan kami