tcp — почему ESP8266 сообщает об ошибке DNS при загрузке php URL?

Используя ESP8266 и используя следующие AT-команды, я могу успешно получить веб-страницу:

AT+CIPSTART="TCP","www.somewebsite.com",80
AT+CIPSEND=80
> GET http://www.somewebsite.com HTTP/1.0
<I get a bunch of HTML here>

Все идет нормально. Теперь у меня есть страница php на моем сайте, которая принимает несколько параметров и соответственно обновляет таблицу в базе данных. Поэтому, когда я печатаю:

http: //www.mywebsite.com/mypage.php? arg1 = один&арг2 = два

Успешно обновляет таблицу. Теперь, когда я пытаюсь использовать ESP8266, я получаю ошибку DNS:

AT+CIPSTART="TCP","http://www.mywebsite.com/mypage.php?arg1=one&arg2=two",80
<get DNS fail here>

Даже если я пробую страницу php без аргументов, я получаю ошибку DNS:

AT+CIPSTART="TCP","http://www.mywebsite.com/mypage.php",80
<get DNS fail here>

Кто-нибудь знает, что происходит? Может ли быть так, что страница php не находится на 80-м порту? И если это так, как мне узнать, на каком порту он работает?

Кстати, если я делаю то же самое со страницей HTML на моем сайте, это работает просто отлично.

РЕДАКТИРОВАТЬ:
Когда я пытаюсь это:

AT+CIPSTART="TCP","www.mywebsite.com",80
> GET /mypage.php?arg1=one,arg2=two

Я получаю этот вывод:

Ошибка 404 не найдено

И когда я пытаюсь:

AT+CIPSTART="TCP","www.mywebsite.com",80
> GET http://www.mywebsite.com/mypage.php?arg1=one,arg2=two

Я получаю HTML-код www.mywebsite.com/index.html, а не php-страницу.

Я также не уверен, что делает «HTTP / 1.0» в команде GET?

0

Решение

Вы не помещаете URL на AT+CIPSTART строка, которая просто хочет имя сервера. Остальная часть URL идет после GET, Кроме того, если ваш сервер делает виртуальный хостинг, вам необходимо отправить Host: заголовок, чтобы сказать, какое имя сервера использовать.

AT+CIPSTART="TCP","www.mywebsite.com",80
> GET /mypage.php?arg1=one&arg2=two HTTP/1.1
> Host: www.mywebsite.com
4

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]