requests
Get
  1. import requests
  2.  
  3. response = requests.get('https://api.github.com')
  4.  
  5. if response.status_code == 200:
  6. print('Success!')
  7. elif response.status_code == 404:
  8. print('Not Found.')
  1. import requests
  2.  
  3. response = requests.get('https://api.github.com/search/repositories',
  4. params={'q': 'requests+language:python'},
  5. headers={'Accept': 'application/vnd.github.v3.text-match+json'},
  6. )
  7.  
  8. json_response = response.json()
  9. print(json_response)
Exception
  1. import requests
  2. from requests.exceptions import HTTPError
  3.  
  4. try:
  5. response = requests.get('https://api.github.com/invalid')
  6. response.raise_for_status() # If the response was successful, no Exception will be raised
  7. except HTTPError as http_err:
  8. print(http_err)
  9.  
  10. try:
  11. response = requests.get('https://api.github.com')
  12. response.raise_for_status() # If the response was successful, no Exception will be raised
  13. except HTTPError as http_err:
  14. print(http_err)
  15. else:
  16. print("success!")
Content
  1. import requests
  2. response = requests.get('https://api.github.com')
  3.  
  4. print(response.content) # bytes string
  5.  
  6. response.encoding = 'utf-8'
  7. print(response.text) # unicode string
  8.  
  9. print(response.json()) # convert to json data
Headers
  1. import requests
  2. response = requests.get('https://api.github.com')
  3.  
  4. print(response.headers)
Others
  1. import requests
  2.  
  3. response = requests.post('https://httpbin.org/post', data={'key':'value'})
  4. print(response.text)
  5.  
  6. response = requests.put('https://httpbin.org/put', data={'key':'value'})
  7. print(response.text)
  8.  
  9. response = requests.delete('https://httpbin.org/delete')
  10. print(response.text)
  11.  
  12. response = requests.head('https://httpbin.org/get')
  13. print(response.text)
  14.  
  15. response = requests.patch('https://httpbin.org/patch', data={'key':'value'})
  16. print(response.text)
  17.  
  18. requests.options('https://httpbin.org/get')
  19. print(response.text)
Inspections
  1. import requests
  2.  
  3. response = requests.post('https://httpbin.org/post', json={'key':'value'})
  4. request = response.request
  5.  
  6. print(request.headers);
  7. print(request.url)
  8. print(request.body)
Authentication
  1. #access by username and password
  2. import requests
  3.  
  4. from getpass import getpass
  5. response = requests.get('https://api.github.com/user', auth=('username', getpass()))
  1. #access by token
  2. import requests
  3.  
  4. headers = {
  5. 'Authorization': 'Bearer AAAAAAAAAAAAAAAAAAAAAIRWAwEAAAAALRrtvjL3wDGnv%2FuA0EO463TjzLc%3DzuLJ3ypKMwrp59WQ4fY6TuAKXN1jqq4VEj4TDx9AFAzWj9qeg4',
  6. }
  7.  
  8. data = '{"query":"Valdosta State","maxResults":"100","fromDate":"201910200000","toDate":"201910310000"}'
  9.  
  10. response = requests.post('https://api.twitter.com/1.1/tweets/search/30day/SearchThirtyDays.json', headers=headers, data=data)
Reference
  • Tutorial