python requests post query params

Python Requests Post Query Params

As a web developer, I have found myself needing to send HTTP requests to APIs and web services. One Python library I have found useful for this task is the requests library. With requests, I can easily send HTTP requests with various methods such as GET, POST, PUT, DELETE, and more.

In this article, we are going to take a closer look at how to use the requests.post() method to send POST requests with query parameters.

Post Request with Query Parameters

When sending a POST request with query parameters, we need to include the parameters in the body of the request. We can do this by passing a dictionary of the parameters to the data parameter in the requests.post() method.


import requests

url = "https://example.com/api"
params = {
    "param1": "value1",
    "param2": "value2"
}
response = requests.post(url, data=params)

print(response.text)

In the above code snippet, we create a dictionary of query parameters and pass it to the data parameter of the requests.post() method. The response of the HTTP request is stored in the response variable.

Query Parameters with JSON Data

Sometimes we need to send JSON data along with the query parameters in our POST request. In such cases, we can use the json parameter instead of the data parameter.


import requests

url = "https://example.com/api"
params = {
    "param1": "value1",
    "param2": "value2"
}
data = {
    "key1": "value1",
    "key2": "value2"
}
response = requests.post(url, data=data, params=params)

print(response.text)

In the above code snippet, we create a dictionary of query parameters and pass it to the params parameter. We also create a dictionary of JSON data and pass it to the json parameter. The response of the HTTP request is stored in the response variable.

Conclusion

The requests library is a powerful tool for sending HTTP requests in Python. In this article, we saw how to send POST requests with query parameters using the requests.post() method. We also saw how to include JSON data along with the query parameters in the POST request.