Sending GET, POST, PUT, DELETE Requests In Python
Tags: python, programming, codenewbie, beginners
Published: 2021-08-28 00:50:53

Hello, I'm [Aya Bouchiha](developer.aya.b@gmail.com), today, we'll talk about sending requests in python using the requests module

## installation

```
pip install requests
```
## What's GET request

**GET**: is a request used for getting or retrieving data or information from a specified server.

## Sending GET requests in Python using requests

```python
import requests

url = 'https://jsonplaceholder.typicode.com/posts/1'

response = requests.get(url)

# <Response [200]>
print(response)

# 200
print(response.status_code)

# {
#  "userId": 1,
#  "id": 1,
#  "title": "sunt aut facere repellat provident occaecati excepturi optio reprehenderit",
#  "body": "quia et suscipit\nsuscipit recusandae consequuntur expedita et cum\nreprehenderit molestiae ut ut quas totam\nnostrum rerum est autem sunt rem eveniet architecto"
#}
print(response.text)

# https://jsonplaceholder.typicode.com/posts/1
print(response.url)

# application\json; charset=utf-8
print(response.headers['Content-Type'])

# b'{\n  "userId": 1,\n  "id": 1,\n  "title": "sunt aut facere repellat provident occaecati excepturi optio reprehenderit",\n  "body": "quia et suscipit\\nsuscipit recusandae consequuntur expedita et cum\\nreprehenderit molestiae ut ut quas totam\\nnostrum rerum est autem sunt rem eveniet architecto"\n}'
print(response.content)

# {'userId': 1, 'id': 1, 'title': 'sunt aut facere repellat provident occaecati excepturi optio reprehenderit', 'body': 'quia et suscipit\nsuscipit recusandae consequuntur expedita et cum\nreprehenderit molestiae ut ut quas totam\nnostrum rerum est autem sunt rem eveniet architecto'}
print(response.json())

# <class 'dict'>
print(type(response.json()))

# for more information
# print(dir(response))
```

## What's POST request

**POST**: is a request that is used for sending information or data to a specific server.


## Sending POST requests in Python using requests

```python
import requests
import json

url = 'https://jsonplaceholder.typicode.com/posts'

data = { 'title': 'buy new mouse','body': 'I need to buy a new mouse !','userId': 5,}
headers = {'content-type': 'application/json; charset=UTF-8'}

response = requests.post(url, data=json.dumps(data), headers=headers)

# 201
print(response.status_code)

# True
print(response.ok)

# b'{\n  "title": "buy new mouse",\n  "body": "I need to buy a new mouse !",\n  "userId": 5,\n  "id": 101\n}'
print(response.content)

# {
#   "title": "buy new mouse",
#   "body": "I need to buy a new mouse !",
#   "userId": 5,
#   "id": 101
# }
print(response.text)

# <class 'str'>
print(type(response.text))

# https://jsonplaceholder.typicode.com/posts
print(response.url)

# application/json; charset=utf-8
print(response.headers['Content-Type'])

# utf-8
print(response.encoding)
```

## What's the PUT request

**PUT**:  is a request used for creating or updating a resource in a specific server.

## Sending PUT requests in Python using requests

```python
import requests
import json

url = 'https://jsonplaceholder.typicode.com/posts/1'
data = {'id':1, 'userId':2, 'title':'drink water', 'body':'drinking water is important'}
headers = {'Content-Type':'application/json; charset=UTF-8'}
response = requests.put(url, data=json.dumps(data), headers=headers)


# 200
print(response.status_code)

# True
print(response.ok)

# b'{\n  "id": 1,\n  "userId": 2,\n  "title": "drink water",\n  "body": "drinking water is important"\n}'
print(response.content)

# {
#   "id": 1,
#   "userId": 2,
#   "title": "drink water",
#   "body": "drinking water is important" 
# }
print(response.text)

# <class 'str'>
print(type(response.text))

# https://jsonplaceholder.typicode.com/posts
print(response.url)

# application/json; charset=utf-8
print(response.headers['Content-Type'])

# utf-8
print(response.encoding)
```

## What's a delete request

**DELETE**: is a request used to delete a specific resource in a server.

## Sending a DELETE request in python

```py
import requests
import json

url = 'https://jsonplaceholder.typicode.com/posts/1'

headers = {'Content-Type': 'application/json; charset=UTF-8'}

response = requests.delete(url, headers=headers)

print(response.status_code) # 200

print(response.ok) # True

print(type(response.text)) # <class 'str'>

print(response.url) # https://jsonplaceholder.typicode.com/posts/1

print(response.headers['Content-Type']) # application/json; charset=utf-8

print(response.encoding) # utf-8
```

Have a good day