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.