SASGIS

Веб-картография и навигация


View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0003550SAS.Планета[All Projects] Багpublic21-08-2019 21:2530-08-2019 13:57
Reporteraflexus 
Assigned Tozed 
PrioritynormalSeverityminorReproducibilityalways
StatusresolvedResolutionfixed 
PlatformOSOS Version
Product Version190707 
Target Version191221Fixed in Version191221 
Summary0003550: Не удаётся отправить Cookie в закодированном виде
DescriptionGetScript.txt

Отправка через RequestHead-параметр переменной закодированной в URLEncode() по-факту отправляется декодированной.

Если эту же переменную сохранить банально в файл, кодировка сохраняется.
Steps To ReproduceТо есть:

   v := 'kd3/sd+asi adf';
   e := URLEncode(v); // -> 'kd3%2Fsd%2Basi%20adf'

И вот если сделать запрос с таким вот заголовком:

   RequestHead := 'Data: e + 0000013#10';

То на самом деле отправится декодированная ('kd3/sd+asi adf') переменная.
TagsNo tags attached.
Attached Filestxt file icon GetUrlScript.txt [^] (1,186 bytes) 21-08-2019 23:05 [Show Content]
png file icon Screenshot_1.png [^] (62,066 bytes) 21-08-2019 23:06


png file icon Image 1.png [^] (43,129 bytes) 21-08-2019 23:26


txt file icon GetUrlScript_Error.txt [^] (1,174 bytes) 21-08-2019 23:38 [Show Content]

- Relationships

-  Notes
(0019280)
aflexus (reporter)
21-08-2019 21:50

Сообщение поломалось немного, но думаю, и из контекста понятно :)
RequestHead := 'Data:' + e + 0000013#10...
(0019281)
zed (manager)
21-08-2019 22:53

Может ваша функция URLEncode просто не работает? Покажите исходник?

Записал в скрипте строку:

RequestHead := 'Data: ' + 'kd3%2Fsd%2Basi%20adf'

отправилось как и положено (смотрел в wireshark). Что в общем-то не удивительно, т.к. никаких дополнительных обработок заголовков не выполняется.
(0019282)
aflexus (reporter)
21-08-2019 22:56

function URLEncode(const ASrc: String): String;
    var i: Integer;
        SafeChars: String;
    begin
        Result := '';
        SafeChars := 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
        for i := 1 to Length(ASrc) do begin
            if not isInString( ASrc[i], SafeChars ) then begin
                Result := Result + '%' + IntToHex(Ord(ASrc[i]), 2);
            end else begin
                Result := Result + ASrc[i];
            end;
        end;
    end;
(0019283)
aflexus (reporter)
21-08-2019 22:58
edited on: 21-08-2019 22:59

При этом, если сделать SaveToLocalFile(dbg_file, URLEncode(v));
То в файл сохранится так, как надо.

(0019284)
zed (manager)
21-08-2019 22:59

isInString?
(0019285)
aflexus (reporter)
21-08-2019 22:59

Ну это банально:

function isInString(const ch: Char; const s: String): Boolean;
    var i: Integer;
    begin
        Result := False;
        for i := 1 to Length(s) do begin
            Result := s[i] = ch;
            if Result then Break;
        end;
    end;
(0019286)
zed (manager)
21-08-2019 23:08

> Ну это банально
Это понятно, но мне же надо воспроизвести ваш кейс, а не написать свой вариант, который может работать (в отличии от вашего).

Приложил скрипт (взял за основу OSM Mapnik), у меня он работает как надо. И в Pascal Script IDE пишет всё как надо и в сеть уходит закодированная строка.
(0019287)
zed (manager)
21-08-2019 23:10

Чем вы смотрите заголовки при передаче в сеть? Покажите ваш скрипт целиком, может там ошибка и вместо одной переменной вы отправляете другую?
(0019288)
aflexus (reporter)
21-08-2019 23:27
edited on: 21-08-2019 23:51

Все дело в имени параметра - "Cookie" :) Именно с ним переменная почему-то декодируется.

Скриншот приложил.

И добавил GetUserScript - который не работает.

Спасибо огромное за помощь!

Теперь получилось повторить поведение?

(0019291)
zed (manager)
22-08-2019 09:13

Да, с куками получилось. Похоже на баг в используемом компоненте - при установке заголовков он автоматически декодирует поле Cookie и впоследствии в таком виде и отправляет в интернет. Сделал заглушку, чтобы такого не происходило. В следующей ночной версии куки будут уходить в том же виде, что и были установлены в скрипте.
(0019295)
aflexus (reporter)
22-08-2019 17:26

Супер! Благодарю за оперативность!

- Users who viewed this issue
User List Anonymous (1661x), omen98 (1x), rass (3x), kosmos_b (1x), zed (24x), aflexus (41x), vdemidov (9x), Tolik (2x), ygorigor (1x)
Total Views 1743
Last View 02-12-2024 23:22

- Issue History
Date Modified Username Field Change
21-08-2019 21:25 aflexus New Issue
21-08-2019 21:50 aflexus Note Added: 0019280
21-08-2019 22:42 zed Steps to Reproduce Updated View Revisions
21-08-2019 22:53 zed Note Added: 0019281
21-08-2019 22:54 zed Status new => feedback
21-08-2019 22:56 aflexus Note Added: 0019282
21-08-2019 22:56 aflexus Status feedback => new
21-08-2019 22:58 aflexus Note Added: 0019283
21-08-2019 22:59 aflexus Note Edited: 0019283 View Revisions
21-08-2019 22:59 zed Note Added: 0019284
21-08-2019 22:59 aflexus Note Added: 0019285
21-08-2019 23:05 zed File Added: GetUrlScript.txt
21-08-2019 23:06 zed File Added: Screenshot_1.png
21-08-2019 23:08 zed Note Added: 0019286
21-08-2019 23:10 zed Note Added: 0019287
21-08-2019 23:26 aflexus File Added: Image 1.png
21-08-2019 23:27 aflexus Note Added: 0019288
21-08-2019 23:28 aflexus Note Edited: 0019288 View Revisions
21-08-2019 23:30 aflexus Note Edited: 0019288 View Revisions
21-08-2019 23:38 aflexus File Added: GetUrlScript_Error.txt
21-08-2019 23:39 aflexus Note Edited: 0019288 View Revisions
21-08-2019 23:51 aflexus Note Edited: 0019288 View Revisions
22-08-2019 09:13 zed Note Added: 0019291
22-08-2019 09:17 zed Status new => resolved
22-08-2019 09:17 zed Resolution open => fixed
22-08-2019 09:17 zed Product Version => 190707
22-08-2019 09:17 zed Fixed in Version => 191221
22-08-2019 09:17 zed Target Version => 191221
22-08-2019 09:17 zed Summary GetScript.txt: отправка через RequestHead строки закодированной в URLEncode() - ошибка. => Не удаётся отправить Cookie заданные в RequestHead в закодированном виде
22-08-2019 09:18 zed Assigned To => zed
22-08-2019 09:18 zed Status resolved => assigned
22-08-2019 09:18 zed Status assigned => resolved
22-08-2019 17:26 aflexus Note Added: 0019295
22-08-2019 17:26 aflexus Status resolved => closed
22-08-2019 17:52 zed Summary Не удаётся отправить Cookie заданные в RequestHead в закодированном виде => Не удаётся отправить Cookie в закодированном виде
22-08-2019 17:56 vdemidov Priority high => normal
22-08-2019 17:56 vdemidov Severity major => minor
22-08-2019 17:56 vdemidov Status closed => resolved



Copyright © 2007 - 2024 SAS.Planet Team