Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > 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)
Подскажите, как можно отучить его от этой вредной привычки? smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)