Модуль Sim808 Неверный HTTP-запрос
У меня есть Arduino UNO и sim808 EVB-V3.02.4. Я хочу отправить GET-запрос на свой URL-адрес, но всегда получаю сообщение об ошибке 400 Http – неверный запрос.
#include <DFRobot_sim808.h>
#include <SoftwareSerial.h>
#define PIN_TX 7
#define PIN_RX 8
SoftwareSerial mySerial(PIN_TX,PIN_RX);
DFRobot_SIM808 sim808(&mySerial);//подключить RX,TX,PWR,
char http_cmd[] = "GET /index.php?lat=10&long=100 HTTP/1.0\r\n\r\n";
char buffer[512];
void setup() {
mySerial.begin(9600);
Serial.begin(9600);
}
void loop() {
//************ Попытка DHCP *******************
while(!sim808.join(F("cmnet"))) {
Serial.println("Sim808 join network error");
delay(2000);
}
//************ Успешный DHCP ****************
Serial.print("IP Address is ");
Serial.println(sim808.getIPAddress());
//************ Установить TCP-соединение ************
while(!sim808.connect(TCP,"39c309ae.ngrok.io", 80)) {
Serial.println("Connect error");
}
Serial.println("Connection success");
//************ Отправка GET-запроса *******************
Serial.println("waiting to fetch...");
sim808.send(http_cmd, sizeof(http_cmd)-1);
while (true) {
int ret = sim808.recv(buffer, sizeof(buffer)-1);
if (ret <= 0){
Serial.println("fetch over...");
break;
}
buffer[ret] = '\0';
Serial.print("Recv: ");
Serial.print(ret);
Serial.print(" bytes: ");
Serial.println(buffer);
break;
}
//************* Закрыть соединения TCP или UDP **********
sim808.close();
//*** Отключить беспроводное соединение, закрыть движущуюся сцену *******
sim808.disconnect();
delay(5000);
}
Мой php-код:
<?php
file_put_contents('test.txt', $_GET['lat'] . '---' . $_GET['lon']);
print '
<html>
<head>
<title>Good</title>
</head>
<body>
Was Good
</body>
</html>
';
?>
Я хочу просто открыть http://39c309ae.ngrok.io/index.php?lat =10&long=100 с arduino и sim808.
Что не так в моих кодах?
@Pooya Behravesh, 👍0
1 ответ
Лучший ответ:
▲ 1
Вы не отправляете заголовок Host:
вместе со своим запросом. Без этого веб-сервер не знает, с какого веб-сайта вы хотите получить страницу /index.php.
char http_cmd[] = "GET /index.php?lat=10&long=100 HTTP/1.0\r\n"
"Host: 39c309ae.ngrok.io\r\n"
"\r\n";
,
@Majenko
Смотрите также:
- GSM-модуль Sim800l не может подключить данные gprs
- Отправить HTTP get запрос от GSM SIM800c и Arduino
- Как настроить модуль TinySine 3G (SIM5320E) для запроса HTTP GET
- HTTP-запрос SIM800L ненадежен
- Как публиковать запросы HTTP POST на моем веб-сайте?
- Проблема с получением SMS - GSM-модуль Arduino Uno и SIM900A
- Мини-модем SIM900a, IMEI 0, помощь с контактами TX RX
- Как получить данные из базы данных моего сервера в переменную в моем Arduino?
здорово поработал! большое спасибо! из-за низкой моей репутации я не могу отметить ваш вопрос как лучший ответ! в любом случае, спасибо, @Pooya Behravesh