Я пытаюсь написать программу, которая считывает значения температуры и влажности с устройства Pysense и сохраняет эти значения в базе данных, которая находится на моем ноутбуке.Для этого я использую сокет для отправки данных Json через POST на страницу php, которая затем декодирует данные Json и вставляет соответствующие значения в базу данных.У меня проблема в том, что я получаю ответ «400 неверных запросов» при попытке отправить данные на страницу php.Я предполагаю, что это как-то связано с форматированием моих данных Json, но я не могу найти какое-либо решение в Интернете, которое мне подходит.Вот мой код ниже:
Здесь значения hum и temp - это показания устройства.
data = '{ "DeviceName": 1, "Humidity": %.2f, "Temperature": %.2f }'%(hum,temp)
header = ("""
POST /insert.php HTTP/1.1
Host: 192.168.4.2
Content-Type: application/json\r\n
""")
contentLengthStr = 'Content-Length : %s\r\n\r\n'%str(len(data))
request = header + contentLengthStr + data
print(request)
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((host,port))
s.send(request.encode())
response = s.recv(4096)
print(response)
Я ожидаю, что данные будут декодированы страницей php, но здесьэто ответ, который я получаю из консоли:
HTTP / 1.1 400 неверный запрос \ r \ nДата: вторник, 29 января 2019 16:12:06 GMT \ r \ nСервер: Apache / 2.4.33 (Win32) OpenSSL / 1.1.0h PHP / 7.2.6 \ r \ nВары: accept-language, accept-charset \ r \ nAccept-Ranges: байты \ r \ nСоединение: закрыть \ r \ nContent-Type: text / html;charset = utf-8 \ r \ nContent-Language: en \ r \ nExpires: вт, 29 января 2019 16:12:06 GMT \ r \ n \ r \ n \ r \ n \ r \ n \ r \ n \r \ nПлохой запрос! \ r \ n \ r \ n * / -> \ r \ n \ r \ n \ r \ n \ r \ nПлохой запрос! '
Любые предложения будут оценены!