powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / разбор http пакета средствами Cache 2008. Возможно ли?
3 сообщений из 3, страница 1 из 1
разбор http пакета средствами Cache 2008. Возможно ли?
    #36823193
Фотография u78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Коллеги шлют post запрос который формируют сами, прям в сокет пишут данные. В php такой запрос можно разобрать, если использовать переменную $HTTP_RAW_POST_DATA, а вот кашой что то никак не могу, разбираю %request, просмотрел свойства Data,MimeData,CgiEnvs,Content - нигде там этих данных нет.

Реально в пакете http такая фигня (сниффером отловил):
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
POST /csp/ptk/Gps.csp HTTP/ 1 . 1 
Host:  10 . 1 . 63 . 137  
User-Agent: user 
Content-Type: application/octet-stream 
Content-Length:  36 
Connection: close

00010581h[тут кракозябры, потому что бинарные данные]

00010581h[тут кракозябры, потому что бинарные данные] это как раз данные которые я ловлю.

Как извлечь сырые данные из http запроса ?
...
Рейтинг: 0 / 0
разбор http пакета средствами Cache 2008. Возможно ли?
    #36824140
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а какие данные то тебе нужны
все эти поля можно получить раздельно, но скопом вроде такого нету, смысла потому что особого в этом нету

как раз через %request, в CgiEnvs большая часть информации должна быть
...
Рейтинг: 0 / 0
разбор http пакета средствами Cache 2008. Возможно ли?
    #36826243
Фотография u78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DAiMorа какие данные то тебе нужны
сырые данные, есть такой тип application/octet-stream - это значит после заголовков просто данные без разделителя




В общем отвечаю себе и всем кому интересно:
Cache разбирает данные форм. Протокол http для этого предусматривает несколько типов данных, например application/x-www-form-urlencoded в этом случае можно передавать бинарные данные (по байтам) и кодировать их в вид %XX, где ХХ - любое шестандцатиричное число.

Когда такой запрос прийдёт на csp сервер, в объекте %request будут ASCII представления символов, чья кодировка указана в http пакете в виде %XX.

Например, хотим отправить строчку с данными:
00010581p%0A%08%05%0C%17%04%03-Ec%02%0B%D8t%00%00 . Это url encoding. Печатные символы отображаются как есть, а непечатные в виде ASCII кода шестнадцатиричным числом.

Получается вот такой http пакет (отловил сниффером)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
POST /csp/ptk/Gps.csp HTTP/ 1 . 1 
Host:  10 . 1 . 63 . 137  
User-Agent: user 
Content-Type: application/x-www-form-urlencoded
Content-Length:  49 

00010581p%0A% 08 % 05 %0C% 17 % 04 % 03 -Ec% 02 %0B%D8t% 00 % 00 
[src]
(там ещё в начале управляющие символы http пакета, я их не привожу)

Теперь ловим эти данные в Cache. Вот такой код отлова:
[src]
s DataStrings = $O(%request.Data(""))
После этой строчке в DataStrings будет строчка
"00010581p"_$c(10,8,5,12,23,4,3)_"-Ec"_$c(2,11)_"Шt"

Вот собственно всё что я хотел сказать про отправку данных в каше с помощью записи данных в сокет.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / разбор http пакета средствами Cache 2008. Возможно ли?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]