Using headers with the Python requests library's get method

PythonHttp RequestPython Requests

Python Problem Overview


So I recently stumbled upon this great library for handling HTTP requests in Python; found here http://docs.python-requests.org/en/latest/index.html.

I love working with it, but I can't figure out how to add headers to my get requests. Help?

Python Solutions


Solution 1 - Python

According to the API, the headers can all be passed in with requests.get():

import requests
r=requests.get("http://www.example.com/", headers={"Content-Type":"text"})

Solution 2 - Python

Seems pretty straightforward, according to the docs on the page you linked (emphasis mine).

> requests.get(url, params=None, headers=None, cookies=None, auth=None, > timeout=None) > > Sends a GET request. > Returns Response object. > > Parameters: > > * url – URL for the new > Request object. > * params – (optional) > Dictionary of GET Parameters to send > with the Request. > * headers – (optional) > Dictionary of HTTP Headers to send > with the Request. > * cookies – (optional) > CookieJar object to send with the > Request. > * auth – (optional) AuthObject > to enable Basic HTTP Auth. > * timeout – > (optional) Float describing the > timeout of the request.

Solution 3 - Python

This answer taught me that you can set headers for an entire session:

s = requests.Session()
s.auth = ('user', 'pass')
s.headers.update({'x-test': 'true'})

# both 'x-test' and 'x-test2' are sent
s.get('http://httpbin.org/headers', headers={'x-test2': 'true'})

Bonus: Sessions also handle cookies.

Solution 4 - Python

  1. Go to http://myhttpheader.com

  2. copy attributes - typically 'Accept-Language' and 'User-Agent'.

  3. Wrap them in the dictionary:

    headers = { 'Accept-Language' : content-copied-from-myhttpheader,
                'User-Agent':content-copied-from-myhttpheader}
    
  4. pass headers in your request

    requests.get(url=your_url,headers=headers)
    

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionBreedlyView Question on Stackoverflow
Solution 1 - PythoncwallenpooleView Answer on Stackoverflow
Solution 2 - PythonJohn FlatnessView Answer on Stackoverflow
Solution 3 - PythonCees TimmermanView Answer on Stackoverflow
Solution 4 - PythonBogdan CzarneckiView Answer on Stackoverflow