GET запросы Web2Py от Arduino (ESP8266WiFi) - PullRequest
0 голосов
/ 28 июня 2018

Я использую NodeMCU и хочу записать данные на мой локальный сервер Web2Py.

Запрос: "http://minion.local:8000/ardulog/default/add/6476366/45643" отлично работает из браузера и возвращает идентификатор записи.

Мой Arduino может подключиться к моему серверу, но не получит ошибку возврата данных или что-либо иное, и в моей базе данных ничего не появится.

// This will send the request to the server
samptime = millis();
rpm = (samptime + 333) % 96789;
String request = "10.0.0.244:8000/ardulog/default/add/"+String(samptime)+"/"+String(rpm)+" HTTP/1.1";
Serial.println("\ntrying: ");
Serial.println("GET " + request);
Serial.println("host: minion.local");
client.println("GET " + request);
client.println("host: minion.local");

// if there are incoming bytes available 
// from the server, read them and print them:
while (client.available()) {
  char c = client.read();
  Serial.print(c);
}

Serial.println("closing connection");
client.stop(); 

Я перепробовал каждый вариант, который только смог придумать, но получил только следующее:

connecting to minion.local
[hostByName] request IP for: minion.local
[hostByName] Host: minion.local IP: 10.0.0.244
Requesting: 
GET 10.0.0.244:8000/ardulog/default/add/112725/16269 HTTP/1.1
host: minion.local
closing connection
wait 5 sec...

Почему я не читаю что-нибудь перенастроенное с сервера?

1 Ответ

0 голосов
/ 28 июня 2018

РЕШИТЬ! Несмотря на то, что мне не удалось отправить POST в Google Sheets, простое изменение слова с GET на POST работало с Web2Py без отправки каких-либо данных тела:

if(client.connect(host,port))  
  client.println("POST /ardulog/default/add/" + String(samptime)+ "/" + String(rpm) + " HTTP/1.1");

(хотя все еще не получает страницу результатов с сервера)

...