Ошибка при выполнении запроса с использованием Arduino Uno и ESP8266
Я использую Arduino Uno и ESP8266 в проекте.
Я использую AT-команды для подключения к Wi-Fi и отправки запроса. Я использую последовательный порт монитора для проверки кода перед его компиляцией в Arduino.
Он подключается к Wi-Fi, и я могу сделать запрос к серверу в моей сети, но когда я пытаюсь сделать запрос к моему веб-сервису в облаке, он работает некорректно.
Возврат — HTML со страницей 404 вместо того, что я ожидал:
<h1>Hello Versa</h1>
Вот мой код:
AT+CIPSTART="TCP","ternary.com.br",80
AT+CIPSEND=18
GET /webservice/
Может ли кто-нибудь мне помочь и объяснить, что я делаю неправильно?
После того, как я увидел ответ Максимилиана Герхардта, я решил эту проблему, записав следующую последовательность в сериализации монитора:
AT+CIPSTART="TCP","ternary.com.br",80
AT+CIPSEND=70
GET /webservice/ HTTP/1.1
Host: ternary.com.br
Connection: Close
[Just press enter and send a new line]
@Ricardo Godoz, 👍0
1 ответ
Лучший ответ:
Запросы HTTP состоят не только из GET /webservice/
. Посмотрите, что делает curl
(консольный HTTP-клиент).
C:\>curl -v "http://ternary.com.br/webservice/"
* Trying 187.84.237.200...
* Connected to ternary.com.br (187.84.237.200) port 80 (#0)
> GET /webservice/ HTTP/1.1
> Host: ternary.com.br
> User-Agent: curl/7.46.0
> Accept: */*
>
< HTTP/1.1 200 OK
< Date: Fri, 11 May 2018 15:04:16 GMT
< Server: Apache
< X-Powered-By: PHP/5.6.30
< Vary: Accept-Encoding
< Cache-Control: max-age=0, no-cache, no-store, must-revalidate
< Expires: Wed, 11 Jan 1984 05:00:00 GMT
< X-UA-Compatible: IE=Edge,chrome=1
< Pragma: no-cache
< Transfer-Encoding: chunked
< Content-Type: text/html; charset=UTF-8
<
<h1>Hello Versa</h1>* Connection #0 to host ternary.com.br left intact
Вам придется как минимум передать минимальные корректные HTTP-заголовки формы
GET /webservice/ HTTP/1.1
Host: ternary.com.br
Connection: Close
Чтобы получить ответ. Также обратите внимание на окончание \r\n\r\n
. Обратитесь к этот сайт для получения дополнительных заголовков.
Когда я отправляю только GET /webservice/
, я также получаю страницу 404.
C:\>cat test
GET /webservice/
C:\>cat test | ncat ternary.com.br 80
[...]
<title data-i18n="[html]404_page.title">404 ÔÇô P├ígina n├úo encontrada</title>
- HTTP GET запрос с использованием Arduino Uno и ESP8266
- Как составить URL-адрес HTTP-запроса GET с параметрами ключ/значение
- ESP8266 Ошибка неверного запроса 400
- ESP8266 отправляет веб-страницу клиенту, но html-коды отображаются в браузере вместо веб-страницы
- Проанализировать большой ответ json с помощью ESP8266
- ESP8266 не отвечает через случайные промежутки времени
- Код запроса ESP8266 GET -1
- Как подключить Arduino с модулем WiFi ESP8266-11 к 000webhost (бесплатный хостинг)