Requests – HTTP अनुरोधों के साथ काम करना

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

Requests लाइब्रेरी का परिचय

Requests — Python में HTTP अनुरोधों के लिए एक सरल और शक्तिशाली लाइब्रेरी है। यह REST API के साथ काम करने, वेब पेजों से डेटा डाउनलोड करने, फ़ाइलें भेजने और प्रमाणीकरण (authentication) के लिए एक सुविधाजनक इंटरफ़ेस प्रदान करती है। अपने संक्षिप्त सिंटैक्स और व्यापक कार्यक्षमता के कारण, Requests Python HTTP क्लाइंट्स के बीच एक डी-फैक्टो मानक बन गई है।

Requests लाइब्रेरी को केनेथ रीट्ज़ ने 2011 में बनाया था, जिसका उद्देश्य Python में HTTP अनुरोधों को यथासंभव सरल और सुविधाजनक बनाना था। यह urllib3 के ऊपर बनी है और HTTP प्रोटोकॉल के साथ काम करने के लिए एक उच्च-स्तरीय API प्रदान करती है।

urllib की तुलना में Requests के लाभ

  • अधिक पठनीय सिंटैक्स — सहज ज्ञान युक्त विधियाँ और पैरामीटर
  • कुकीज़ और रीडायरेक्ट का स्वचालित प्रबंधन — अतिरिक्त कॉन्फ़िगरेशन की आवश्यकता नहीं
  • JSON, हेडर, फ़ॉर्म के साथ आसान काम — लोकप्रिय फ़ॉर्मेट के लिए अंतर्निहित समर्थन
  • सत्र, प्रॉक्सी, प्रमाणीकरण के लिए समर्थन — वेब सेवाओं के लिए पूर्ण टूलसेट
  • सभी HTTP विधियों के लिए समर्थन — GET, POST, PUT, DELETE, PATCH, HEAD, OPTIONS
  • स्वचालित कंटेंट डिकोडिंग — एन्कोडिंग का बुद्धिमानी से प्रबंधन
  • अंतर्निहित SSL समर्थन — डिफ़ॉल्ट रूप से सुरक्षित कनेक्शन

लाइब्रेरी की स्थापना और कनेक्शन

pip का उपयोग करके स्थापना:

pip install requests

नवीनतम संस्करण में अपडेट करने के लिए:

pip install --upgrade requests

लाइब्रेरी को इम्पोर्ट करना:

import requests

HTTP अनुरोधों की मुख्य विधियाँ

GET अनुरोध भेजना

GET अनुरोधों का उपयोग सर्वर से डेटा प्राप्त करने के लिए किया जाता है:

response = requests.get('https://api.example.com/data')
print(response.status_code)  # प्रतिक्रिया कोड
print(response.text)         # प्रतिक्रिया का टेक्स्ट

JSON डेटा प्राप्त करना:

response = requests.get('https://api.example.com/users')
data = response.json()  # Python डिक्शनरी में स्वचालित रूपांतरण
print(data)

POST अनुरोध भेजना

POST अनुरोधों का उपयोग सर्वर पर डेटा भेजने के लिए किया जाता है:

payload = {'username': 'admin', 'password': '123'}
response = requests.post('https://api.example.com/login', data=payload)

JSON डेटा भेजना:

user_data = {'name': 'John', 'email': 'john@example.com'}
response = requests.post('https://api.example.com/users', json=user_data)

PUT, PATCH और DELETE का उपयोग

# PUT - संसाधन का पूर्ण अपडेट
requests.put('https://api.example.com/user/1', json={'name': 'New Name', 'email': 'new@example.com'})

# PATCH - संसाधन का आंशिक अपडेट
requests.patch('https://api.example.com/user/1', json={'active': True})

# DELETE - संसाधन को हटाना
requests.delete('https://api.example.com/user/1')

# HEAD - केवल हेडर प्राप्त करना
response = requests.head('https://api.example.com/user/1')
print(response.headers)

अनुरोध पैरामीटर के साथ काम करना

URL पैरामीटर को डिक्शनरी के माध्यम से पास किया जा सकता है:

params = {'search': 'python', 'limit': 10, 'page': 1}
response = requests.get('https://api.example.com/search', params=params)
print(response.url)  # पैरामीटर के साथ पूर्ण URL दिखाएगा

पैरामीटर को टपल की सूची के रूप में भी पास किया जा सकता है:

params = [('tag', 'python'), ('tag', 'web'), ('limit', 20)]
response = requests.get('https://api.example.com/posts', params=params                    

अनुशंसाएँ