Я использую сторонний удаленный агент, который отправляет POST-запрос о каком-то событии. Запрос POST может быть отправлен на любой сервер, который принимает POST, поэтому я создал быстрый экземпляр flask.
# main.py
from flask import Flask, request
app = Flask(__name__)
@app.route('/', methods=['POST'])
def hello():
# Logging request data to console
return request.get_data()
Этот простой сервер хорошо работает и протестирован с Postman. Теперь, когда происходит событие и удаленный агент пытается отправить данные на мой сервер, я попадаю в журналы ниже.
* Detected change in '/Users/my/path/main.py', reloading
* Restarting with stat
* Debugger is active!
* Debugger PIN: 000-000-000
192.168.1.2 - - [06/Aug/2020 12:06:39] code 400, message Bad HTTP/0.9 request type ('POST')
192.168.1.2 - - [06/Aug/2020 12:06:39] "POST HTTP/1.1" HTTPStatus.BAD_REQUEST -
Вот что я записал на wirehark:
POST HTTP/1.1
Host:192.168.1.1
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64; rv:47.0) Gecko/20100101 Firefox/47.0
Content-length: 6937
Content-type: text/xml
Connection: Keep-Alive
AgentID=ABCD
DataPoint=111
MoreDataPoint=222
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
<title>Error response</title>
</head>
<body>
<h1>Error response</h1>
<p>Error code: 400</p>
<p>Message: Bad HTTP/0.9 request type ('POST').</p>
<p>Error code explanation: HTTPStatus.BAD_REQUEST - Bad request syntax or unsupported method.</p>
</body>
</html>
Я не могу понять, почему мой сервер отклоняет запрос с 400.