Search code examples
pythonhttpput

Is there any way to do HTTP PUT request in Python?


I need to upload some data to a server using HTTP PUT method in Python. From my brief reading of the urllib2 docs, it only does HTTP POST.

Is there any way to do an HTTP PUT in Python?


Solution

  • I've used a variety of python HTTP libs in the past, and I've settled on requests as my favourite. Existing libs had pretty useable interfaces, but code can end up being a few lines too long for simple operations. A basic PUT in requests looks like:

    payload = {'username': 'bob', 'email': '[email protected]'}
    >>> r = requests.put("http://somedomain.org/endpoint", data=payload)
    

    You can then check the response status code with:

    r.status_code
    

    or the response with:

    r.content
    

    Requests has a lot synactic sugar and shortcuts that'll make your life easier.