Ошибка при выполнении запроса с использованием 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]

, 👍0


1 ответ


Лучший ответ:

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>
,