Notes |
|
|
Сообщение поломалось немного, но думаю, и из контекста понятно :)
RequestHead := 'Data:' + e + 0000013#10... |
|
|
(0019281)
|
zed
|
21-08-2019 22:53
|
|
Может ваша функция URLEncode просто не работает? Покажите исходник?
Записал в скрипте строку:
RequestHead := 'Data: ' + 'kd3%2Fsd%2Basi%20adf'
отправилось как и положено (смотрел в wireshark). Что в общем-то не удивительно, т.к. никаких дополнительных обработок заголовков не выполняется. |
|
|
|
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
|
21-08-2019 22:58
(edited on: 21-08-2019 22:59) |
|
При этом, если сделать SaveToLocalFile(dbg_file, URLEncode(v));
То в файл сохранится так, как надо.
|
|
|
(0019284)
|
zed
|
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
|
21-08-2019 23:08
|
|
> Ну это банально
Это понятно, но мне же надо воспроизвести ваш кейс, а не написать свой вариант, который может работать (в отличии от вашего).
Приложил скрипт (взял за основу OSM Mapnik), у меня он работает как надо. И в Pascal Script IDE пишет всё как надо и в сеть уходит закодированная строка. |
|
|
(0019287)
|
zed
|
21-08-2019 23:10
|
|
Чем вы смотрите заголовки при передаче в сеть? Покажите ваш скрипт целиком, может там ошибка и вместо одной переменной вы отправляете другую? |
|
|
(0019288)
|
aflexus
|
21-08-2019 23:27
(edited on: 21-08-2019 23:51) |
|
Все дело в имени параметра - "Cookie" :) Именно с ним переменная почему-то декодируется.
Скриншот приложил.
И добавил GetUserScript - который не работает.
Спасибо огромное за помощь!
Теперь получилось повторить поведение?
|
|
|
(0019291)
|
zed
|
22-08-2019 09:13
|
|
Да, с куками получилось. Похоже на баг в используемом компоненте - при установке заголовков он автоматически декодирует поле Cookie и впоследствии в таком виде и отправляет в интернет. Сделал заглушку, чтобы такого не происходило. В следующей ночной версии куки будут уходить в том же виде, что и были установлены в скрипте. |
|
|
|
Супер! Благодарю за оперативность! |
|