Files
lazarus-ccr/wst/trunk/samples/widestring/client/ws_client.pas

49 lines
1.2 KiB
ObjectPascal
Raw Normal View History

program ws_client;
{$mode objfpc}{$H+}
uses
{$IFDEF UNIX}
cthreads, cwstring,
{$ENDIF}
Classes, SysUtils,
service_intf, soap_formatter, synapse_http_protocol,
echo_service, echo_service_proxy;
const
utf16_bom : array[0..1] of Byte = ($FF, $FE);
binary_buffer : array[0..7] of Word = ($E9, $E9, $E8, $E8, $E7, $E7, $E0, $E0);
var
locService : IEchoService;
ws, wsres : WideString;
ms : TMemoryStream;
c : Integer;
begin
SYNAPSE_RegisterHTTP_Transport();
locService := wst_CreateInstance_IEchoService('SOAP:','HTTP:','http://127.0.0.1:8000/services/IEchoService');
WriteLn('WST WideString Sample - Client');
ms := TMemoryStream.Create();
try
SetLength(ws, Length(binary_buffer) );
Move(binary_buffer[0], Pointer(ws)^, Length(binary_buffer) * 2);
ms.Write(utf16_bom,SizeOf(utf16_bom));
ms.Write(Pointer(ws)^, ( Length(ws) * SizeOf(WideChar) ) );
ms.SaveToFile(ExpandFileName('.' + PathDelim + 'input.widestring'));
wsres := locService.EchoWideString(ws);
ms.Clear();
ms.Write(utf16_bom,SizeOf(utf16_bom));
ms.Write(Pointer(wsres)^, ( Length(wsres) * SizeOf(WideChar) ) );
ms.SaveToFile(ExpandFileName('.' + PathDelim + 'output.widestring'));
finally
ms.Free();
end;
end.