I need to make the following POST request using Google Colab:
POST https://http.msging.net/commands HTTP/1.1
Content-Type: application/json
Authorization: Key YOUR_TOKEN
{
"id": "a456-42665544000-0123e4567-e89b-12d3",
"to": "[email protected]",
"method": "get",
"uri": "lime://wa.gw.msging.net/accounts/+55115555555"
}
I have tried:
import requests
import re
YOUR_TOKEN = "mytoken"
data = {
"id": "a456-42665544000-0123e4567-e89b-12d3",
"to": "[email protected]",
"method": "get",
"uri": "lime://wa.gw.msging.net/accounts/+55115555555"
}
headers = {
"Content-Type": "application/json",
"Authorization": YOUR_TOKEN
}
response = requests.post('https://http.msging.net/commands', headers=headers, data=data)
print(response)
For which I get:
<Response [400]>
I also tried:
import requests
import re
YOUR_TOKEN = "Key cHJvY29ycG9lc3RldGljYWF2YW5jYWRhMTg6cEFBSXFuYTZOR1FFWnpydFltTlo="
data = {
"id": "a456-42665544000-0123e4567-e89b-12d3",
"to": "[email protected]",
"method": "get",
"uri": "lime://wa.gw.msging.net/accounts/+55115555555"
}
headers = {
"Content-Type": "application/json",
"Authorization": YOUR_TOKEN
}
response = requests.post('https://http.msging.net/commands HTTP/1.1', headers=headers, data=data)
print(response)
For which I get:
<Response [404]>
How do I get this request using Google Colab?
Here is the documentation, it does not provide examples. Just the requests.
You get a 400 Bad Request
error, as - although you set the Content-Type
header to application/json
- you do not send JSON
-encoded data.
As per Python requests documentation, when sending JSON
data, you need to either use the data
parameter and pass a JSON
-encoded string, as well as manually set the Content-Type
header to application/json
:
payload = {'some': 'data'}
r = requests.post(url, data=json.dumps(payload), headers={"Content-Type": "application/json"})
or, if you don't want to encode the dict
yourself, use the json
parameter, and Python requests will automatically encode it for you, as well as set the Content-Type
header to application/json
:
r = requests.post(url, json=payload)
You would still need to add your TOKEN
key to the Authorization
header, as you already do.