HTTP için Python'un İstek Kütüphanesi Nasıl Kullanılır
requests
kütüphanesi, HTTP istekleri yapma sürecini basitleştiren popüler bir Python modülüdür. İstekleri ve yanıtları işlemenin karmaşıklığını ortadan kaldırarak web servisleri ve API'lerle etkileşimi kolaylaştırır. Bu makalede, çeşitli HTTP isteklerinin nasıl gönderileceği ve yanıtların nasıl işleneceği dahil olmak üzere requests
kütüphanesini kullanmanın temellerini inceleyeceğiz.
İstekler Kitaplığını Yükleme
requests
kütüphanesini kullanabilmeniz için önce onu yüklemeniz gerekir. Python paket yöneticisi olan pip
'ü kullanarak yükleyebilirsiniz. Terminalinizde şu komutu çalıştırın:
pip install requests
Basit Bir GET İsteği Oluşturma
En temel HTTP isteği, bir sunucudan veri alan bir GET isteğidir. İşte bir GET isteği yapmak için requests
kitaplığını nasıl kullanabileceğiniz:
import requests
response = requests.get('https://api.github.com')
print(response.status_code)
print(response.json())
Bu örnekte GitHub API'sine bir GET isteği gönderiyoruz ve HTTP durum kodunu ve yanıt içeriğini JSON formatında yazdırıyoruz.
POST İstekleri Gönderme
POST istekleri, form gönderimleri gibi verileri bir sunucuya göndermek için kullanılır. requests
kitaplığıyla bir POST isteği göndermenin yolu şöyledir:
import requests
data = {'key1': 'value1', 'key2': 'value2'}
response = requests.post('https://httpbin.org/post', data=data)
print(response.status_code)
print(response.json())
Bu örnekte, httpbin.org test servisine bazı form verileriyle bir POST isteği gönderiyoruz ve yanıt durum kodunu ve içeriğini yazdırıyoruz.
Sorgu Parametrelerinin İşlenmesi
Bazen isteklerinize sorgu parametreleri eklemeniz gerekir. requests
kütüphanesi, parametreleri bir sözlük olarak geçirmenize izin vererek bunu kolaylaştırır:
import requests
params = {'search': 'python', 'page': 1}
response = requests.get('https://httpbin.org/get', params=params)
print(response.status_code)
print(response.url)
Bu örnekte, bir GET isteğine sorgu parametrelerini dahil ediyoruz ve parametreler dahil olmak üzere son URL'yi yazdırıyoruz.
Başlıklarla Çalışma
İsteklerinize kimlik doğrulama veya içerik türlerini belirtmek gibi amaçlarla özel başlıklar eklemeniz gerekebilir. İsteklerinize başlık ekleme yöntemi şu şekildedir:
import requests
headers = {'Authorization': 'Bearer YOUR_TOKEN'}
response = requests.get('https://api.github.com/user', headers=headers)
print(response.status_code)
print(response.json())
Bu örnekte, GitHub API'sine yapılan isteğe bir yetkilendirme başlığı ekliyoruz ve durum kodunu ve yanıt içeriğini yazdırıyoruz.
Zaman Aşımlarını ve İstisnaları Ele Alma
Ağ zaman aşımı ve diğer istisnalar gibi potansiyel sorunları ele almak önemlidir. requests
kitaplığı zaman aşımlarını belirtmenize ve istisnaları yakalamanıza olanak tanır:
import requests
from requests.exceptions import RequestException
try:
response = requests.get('https://httpbin.org/delay/5', timeout=3)
response.raise_for_status()
print(response.status_code)
print(response.text)
except RequestException as e:
print(f'An error occurred: {e}')
Bu örnekte, istek için bir zaman aşımı süresi belirliyoruz ve oluşan tüm istisnaları yakalayarak bir şeyler ters giderse bir hata mesajı yazdırıyoruz.
Çözüm
requests
kütüphanesi, Python'da HTTP istekleri yapmak için güçlü ve kullanıcı dostu bir araçtır. API'lerden veri alıyor, form gönderimleri gönderiyor veya özel başlıkları işliyor olun, requests
kütüphanesi bu görevleri yalnızca birkaç satır kodla gerçekleştirmenizi kolaylaştırır. Bu makalede ele alınan temelleri öğrenerek, Python projelerinizde web servisleri ve API'lerle etkileşim kurmak için iyi donanımlı olacaksınız.