| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Сети > Отправка данных методом POST |
| Автор: walenok 23.4.2007, 09:46 |
| Всем привет Уважаемые гуру, помогите. Мне необходимо передать на web-сервер методом POST xml-файл, вернее даже не файл, а поток данных структурированных в виде xml. Все это замечательно реализуется с помощью TIdHTTP, но к сожалению, сервер работает через SSL, причем в качестве криптопровайдера используется ГОСТовский протокол CryptoPro, который не поддерживается стандартной библиотекой OpenSSL. Поэтому я пытаюсь передать данные с помощью TWebBrowser. Процедура стандартная: procedure TForm1.Button3Click(Sender: TObject); var Data: Pointer; S: WideString; begin S := FileToString(FileName); //Здесь я загоняю xml-файл в строку PostData := VarArrayCreate([1, Length(S) + 1], varByte); Data := VarArrayLock(PostData); try Move(S[1], Data^, Length(S)); finally VarArrayUnlock(PostData); end; Headers := 'Connection: keep-alive'#10'Content-Type: text/xml'#10'Accept-Language: ru'#10'Accept: text/html, */*'#10'Referer: http://xxx.yyy/Servlet'#10'User-Agent: Mozilla/3.0'#10; Flags := EmptyParam; TargetFrameName := EmptyParam; WebBrowser1.Navigate('http://xxx.yyy/Servlet', Flags, TargetFrameName, PostData, Headers); end; Все вроде передается, но к сожалению xml-документ содержит русские буквы, которые при передаче TWebBrowser'ом конвертируются в какую-то бяку: <street>дырдырдырдыр</street> <city>дырдырдырдыр</city> То ли это UTF, то ли еще что... Короче каждая буква передается двумя символами, причем второй chr(4) Подскажите, как можно отучить его от этой вредной привычки? |