pythonrequests.com

Tutorials /

python requests post x-www-form-urlencoded

· 2 min read · Pro Tips · Tutorials

Python requests POST x-www-form-urlencoded

If you are working with APIs, web scraping or performing HTTP requests in Python, you may have come across the term "x-www-form-urlencoded". It is a way to encode data in the format of key-value pairs, where each pair is separated by an "&" symbol and the keys and values are separated by a "=" symbol. In Python, you can use the requests library to perform HTTP requests, including POST requests with x-www-form-urlencoded data.

Using requests.post() method in Python

The requests.post() method in Python is used to send a POST request to a specified URL. It takes two required arguments: the URL to which the request is to be sent, and the data to be sent with the request. The data can be provided as a dictionary or a list of tuples, where each tuple represents a key-value pair.


import requests

data = {"name": "John Doe", "age": 30}

response = requests.post("https://example.com/api", data=data)

print(response.content)

In the above example, we are sending a POST request to "https://example.com/api" with data containing two key-value pairs: "name" and "age". The response from the server is stored in the "response" variable, and we print its content using the "content" attribute.

Encoding data in x-www-form-urlencoded format

The requests library automatically encodes the data in x-www-form-urlencoded format when you provide it as a dictionary or list of tuples. However, you can also encode the data manually using the "urlencode" function from the "urllib.parse" module.


import requests
from urllib.parse import urlencode

data = {"name": "John Doe", "age": 30}

encoded_data = urlencode(data)

response = requests.post("https://example.com/api", data=encoded_data)

print(response.content)

In the above example, we are manually encoding the data using the "urlencode" function and storing it in the "encoded_data" variable. We then send a POST request to "https://example.com/api" with the encoded data, and print the response content.

Conclusion

Using the requests library in Python, you can easily send POST requests with x-www-form-urlencoded data. You can provide the data as a dictionary or a list of tuples, and the library will automatically encode it in the correct format. Alternatively, you can encode the data manually using the "urlencode" function from the "urllib.parse" module.

More tutorials