KentOne
Сообщений: 178
Оценки: 0
Присоединился: 2008-07-15 16:30:46.030000
|
Хочу увидеть НЕ текстовые данные, которые WebBrowser передает серверу при отправке методом POST, для этого использую такой код:
unction Variant2Str(V:OleVariant):string;
var Data:pointer;
S: TMemoryStream;
begin
Data := VarArrayLock(V);
try
S := TMemoryStream.Create;
try
S.Write(Data^, VarArrayHighBound(V, 1) - VarArrayLowBound(V, 1) + 1);
S.Position := 0;
s.SaveToFile('d:\1234.txt');
finally
S.Free;
end;
finally
VarArrayUnlock(V);
end;
procedure TForm1.WebBrowser1BeforeNavigate2(Sender: TObject;
const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
Headers: OleVariant; var Cancel: WordBool);
begin
Variant2Str(PostData);
end;
С текстом все оки: Захожу на любой сайт с авторизацией, заполняю поля логин/пароль, нажимаю кнопочку "войти" и вижу переданные параметры в файле 1234.txt. Паралельно смотрю, что получаю в снифере. Данные в снифере и в файле 1234.txt одинаковые. ПРОБЛЕМА с бинарными данными: если заливаю какой либо файл методом Post, то данные в моем 1234.txt и данные снифера отличаются. Пример: заливаю файл 1.txt с содержанием '8888888888' на upload.ua То, что видит снифер:
-----------------------------7da69342b03d2
Content-Disposition: form-data; name="upfile"; filename="1.txt"
Content-Type: text/plain
8888888888
-----------------------------7da69342b03d2
Content-Disposition: form-data; name="descr"
777
-----------------------------7da69342b03d2
Content-Disposition: form-data; name="pprotect"
-----------------------------7da69342b03d2
Content-Disposition: form-data; name="regagree"
on
-----------------------------7da69342b03d2
Content-Disposition: form-data; name="regSubmit"
.........!
-----------------------------7da69342b03d2-- То, что остается в файле 1234.txt:
-----------------------------7da69342b03d2
Content-Disposition: form-data; name="upfile"; filename="1.txt"
Content-Type: text/plain Т.е. пропадает содержание загруженых файлов. Пробовал на разных ресурсах, как только доходит очередь до того места где в PostData должен быть отправляемый файл данные не сохраняются. В чем может быть причина? Как отловить бинарные данные посланные из TWebBrowser (не снифером, а у себя в программе)?
|