Мне нужно отправить уведомление на конечную точку (настроены веб-узлы). Это уведомление должно быть отправлено из Python 3:
POST /myproject/notification/{nId}
Я нашел несколько примеров отправки данных Json, но мне нужно отправить только идентификатор уведомления nId
import urllib.request
import json
data = {'ids': [1, 2, 3]}
myurl = "localhost"
req = urllib.request.Request(myurl)
req.add_header('Content-Type', 'application/json; charset=utf-8')
jsondata = json.dumps(data)
jsondataasbytes = jsondata.encode('utf-8')
req.add_header('Content-Length', len(jsondataasbytes))
response = urllib.request.urlopen(req, jsondataasbytes)
Как я могу сделать то же самое для POST /myproject/notification/{nId}
?
Я пробовал этот код, но ничего не вышло.
data = 1
myurl = "localhost/myproject/notification/"
req = urllib.request.Request(myurl)
req.add_header('Content-Type', 'application/json; charset=utf-8')
jsondata = json.dumps(data)
Я бы предпочел использовать библиотеку requests
вместо urllib
.
r = requests.post("localhost/myproject/notification/", data=1)
print(r.status_code, r.reason)
Вы пробовали это? Он просто вызывает конечную точку url с псевдоданными.
requests.post("localhost/myproject/notification/"+str(nId), data=dummydata)
Если вы просто хотите отправить пустой POST на этот URL-адрес, просто сделайте это. Нет необходимости указывать параметр данных, если вам его не нужно отправлять.
requests.post('http://localhost/myproject/notification/{}'.format(nId))
Начиная с Python 3.6, вы можете использовать f-строки для форматирования ваших строк.
requests.post(f'http://localhost/myproject/notification/{nId}')