Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: sim900 gprs отправка данных даёт ошибку
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > Сотовая связь и ее приложения
Ioann_II
Здравствуйте, уважаемые коллеги.

Столкнулся вот с какой проблемой. Передавал данные на сайт AT командами HTML - запросов. Ранее всё получалось. Но вот пришлось переехать на другой сайт.
Теперь сайт в ответ выдаёт ошибку:

AT+HTTPREAD
+HTTPREAD:831
<html><body><script type="text/javascript" src="/aes.js" ></script><script>funct
ion toNumbers(d){var e=[];d.replace(/(..)/g,function(d){e.push(parseInt(d,16))})
;return e}function toHex(){for(var d=[],d=1==arguments.length&&arguments[0].cons
tructor==Array?arguments[0]:arguments,e="",f=0;f<d.length;f++)e+=(16>d[f]?"0":""
)+d[f].toString(16);return e.toLowerCase()}var a=toNumbers("f655ba9d09a112d4968c
63579db590b4"),b=toNumbers("98344c2eee86c3994890592585b49f80"),c=toNumbers("2187
d224177377852ab2122167fc1b98");document.cookie="__test="+toHex(slowAES.decrypt(c
,2,a,cool.gif)+"; expires=Thu, 31-Dec-37 23:55:55 GMT; path=/"; location.href="http://
ioann.96host.ru/1.htm?i=1";</script><noscript>This site requires Javascript to w
ork, please enable Javascript in your browser or use a browser with Javascript s
upport</noscript></body></html>
OK

Когда делаю то-же самое, но из браузера - ошибки нет.

Подскажите: как победить.

Спасибо.
Nixon
Зачастую в запросе не хватает заголовков http. Иногда обязателен User-Agent например.
Ioann_II
Цитата(Nixon @ Nov 4 2016, 09:48) *
Зачастую в запросе не хватает заголовков http. Иногда обязателен User-Agent например.


Можно пример?
Спасибо.
Nixon
Например формат GET запроса:
Код
GET <file>?<params>\r\n
User-Agent: Mozilla\r\n

Чтобы сервер не рвал соединение, для выполнения множественных запросов использую еще Connection: Keep-Alive
Как это сделать посредством AT+HTTPREAD не в курсе, поскольку делаю запросы http ручками.
Ioann_II
Сейчас попробовал по-быстренькому сформировать "ручками" запрос.
Запрос вышел такой (С++):

Send = "GET /data_s.php?login=0&password=0&driver=0FB09D501109&car=00001&container=3409DCB431&latitude=5375919&longtitude=8713598 HTTP/1.1\r\n";
Send+= "Host: ioann.96host.ru\r\n";
Send+= "Accept: text/html, application/xhtml+xml, */*\r\n";
Send+= "Accept-Language: ru-RU\r\n";
Send+= "User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; ASU2JS; rv:11.0) like Gecko\r\n";
Send+= "Connection: close\r\n";
Send+= "\r\n";
Response.Format("AT+CIPSEND=%d\r\n",Send.GetLength())

т.е. со всем заголовком....

ответ:

HTTP/1.1 200 OK
Server: nginx
Date: Fri, 04 Nov 2016 07:05:01 GMT
Content-Type: text/html
Content-Length: 942
Connection: close
Vary: Accept-Encoding
Expires: Thu, 01 Jan 1970 00:00:01 GMT
Cache-Control: no-cache

<html><body><script type="text/javascript" src="/aes.js" ></script><script>function toNumbers(d){var e=[];d.replace(/(..)/g,function(d){e.push(parseInt(d,16))});return e}function toHex(){for(var d=[],d=1==arguments.length&&arguments[0].constructor==Array?arguments[0]:arguments,e="",f=0;f<d.length;f++)e+=(16>d[f]?"0":"")+d[f].toString(16);return e.toLowerCase()}var a=toNumbers("f655ba9d09a112d4968c63579db590b4"),b=toNumbers("98344c2eee86c3994890592585b49f80"),c=toNumbers("c2ad64977b51386e0da81884f446376b");document.cookie="__test="+toHex(slowAES.decrypt(c,2,a,cool.gif)+"; expires=Thu, 31-Dec-37 23:55:55 GMT; path=/"; location.href="http://ioann.96host.ru/data_s.php?login=0&password=0&driver=0FB09D501109&car=00001&container=3409DCB431&latitude=5375919&longtitude=8713598&i=1";</script><noscript>This site requires Javascript to work, please enable Javascript in your browser or use a browser with Javascript support</noscript></body></html>
CLOSED


ArtemKAD
Это разве ошибка? Это сообщение, что сайт желает запустить на клиенте жаба-скрипт(скрипт в тексте и судя по тексту это как-то связано с AES-криптографией) и у него это не получилось. Если-бы получилось, это сообщение просто-бы не успели заметить, что и происходит в браузере.
Ioann_II
Что делать?

тут в теле упоминается похоже на кук:
document.cookie="__test="+toHex(slowAES.decrypt(c,2,a,cool.gif)+";
expires=Thu, 31-Dec-37 23:55:55 GMT;

его надо как-то сделать? как?

Спасибо.
ArtemKAD
Цитата(Ioann_II @ Nov 4 2016, 12:20) *
Что делать?

тут в теле упоминается похоже на кук:
document.cookie="__test="+toHex(slowAES.decrypt(c,2,a,cool.gif)+";
expires=Thu, 31-Dec-37 23:55:55 GMT;

его надо как-то сделать? как?


Сделать интерпретатор Javascript ?

Собственно примерно код причесал до удобоваримого:
Код
<script type="text/javascript" src="/aes.js" >
</script>
<script>
function toNumbers(d)
{
    var e=[];
    d.replace(/(..)/g,function(d){e.push(parseInt(d,16))});
return e
}
function toHex()
{
for(var d=[],d=1==arguments.length&&arguments[0].constructor==Array?arguments[0]:arguments,e="",f=0;f<d.length;f++)
    e+=(16>d[f]?"0":"")+d[f].toString(16);
    return e.toLowerCase()
}
var a=toNumbers("f655ba9d09a112d4968c63579db590b4"),
    b=toNumbers("98344c2eee86c3994890592585b49f80"),
    c=toNumbers("2187d224177377852ab2122167fc1b98");

    document.cookie="__test="+toHex(slowAES.decrypt(c,2,a,B))+";expires=Thu, 31-Dec-37 23:55:55 GMT; path=/";
    location.href="http://ioann.96host.ru/1.htm?i=1";
</script>

<noscript>This site requires Javascript to w
ork, please enable Javascript in your browser or use a browser with Javascript s
upport</noscript>


Шутка, конечно. Но проблема в том, что без JS любое изменение серверной части закончится плачевно для устройства. Отсюда в общем случае проще не связываться с подобными сайтами.

ЗЫ. Кука это как раз наименьшая проблема из имеющихся, потому как это просто сохраняемая/отдаваемая по запросу сервера информация хранимая у клиента.
Ioann_II
Приблизительно представляю себе это так:
- сервер, в ответ на мой запрос, отсылает эту страницу,
- надо что-то отправить в ответ, и тогда сервер, наверное, даст запрашиваемую страницу.


В яве не силён, увы..., да и в МК, наверное интерпретатор впихнуть не выйдет - даже расчёт AES занимает много места...

Но обратил внимание, что сайт каждый раз выдаёт один и тот-же скрипт. Может быть, конечно, завтра он станет несколько другой, например с другими числами...
Потому, хотелось бы:
1. понять что ожидает получить сервер - т.е. как оно выглядит на уровне байтов.
2. понять как это всё вычислить.
3. как правильно отправить эти данные - каким запросом.

Ну как-то так.

С сайтом пришлось связаться, т.к. для отладки ПО нужен php и mysql, а таких сайтов бесплатных оказалось мало и зарегистрироваться удаётся не на всех.
Ioann_II
Неужели никто не подскажет?
ArtemKAD
Цитата
Неужели никто не подскажет?

А ты че думаешь, тут сидят web-писатели?

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

В яве не силён, увы...


Ну дык Гугл в помощь и вперед изучать ЯвуСкрипт(обращаю внимание это не ява, а именно JS) хоть поверхностно. Как писал выше тут не web-дизайнеры собрались.

Примерно правильно представляешь. И раз заметил использование куки начни с этого:
https://ru.wikipedia.org/wiki/HTTP_cookie
Там есть подробная схема общения браузер-сервер.

Ну и судя по моим скудным познаниям в JS полученным еще 17 лет назад когда я еще и что такое Инет не представлял, эта страница делает запись в куке через указанные ключи и AES, потом вызывает http://ioann.96host.ru/1.htm?i=1 которой идет обращение уже с кукой которую только что записали. А там или нормальный ответ или еще один JS с почти аналогичным кодом и уже вызовом странички http://ioann.96host.ru/1.htm?i=2 .
Странички все динамически создаваемые на сервере поэтому будет ли запрос http://ioann.96host.ru/1.htm?i=2 при правильной записи в куке - не знаю.



Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.