Okay, sollte jetzt laufen.
Benutzt wurden:
XMLDocument: TXMLDocument;
RtcHttpClient: TRtcHttpClient;
RtcDataRequest: TRtcDataRequest;
Delphi-Quellcode:
(******************************
** Function: RPC_GetItemDesc **
******************************)
function RPC_GetItemDesc(IP_Address:
String; TCP_Port, ItemID: Integer):LongInt;
begin
with XMLDocument
do begin
Active := true;
Version := '
1.0' ;
Encoding := '
UTF-8' ;
ChildNodes.Clear;
with AddChild('
methodCall')
do begin
with AddChild('
methodName')
do
NodeValue:= '
get_item_descr';
with AddChild('
params')
do
with AddChild('
param').AddChild('
value').AddChild('
int')
do
NodeValue:= ItemID;
end;
end;
with RtcHttpClient
do begin
ServerAddr := AnsiString(IP_Address);
ServerPort := AnsiString(IntToStr(TCP_Port));
UseWinHTTP := True;
Connect;
end;
with RtcDataRequest
do begin
Request.Method := '
Post';
Request.URI := '
/RPC2';
Post;
end;
end;
(******************************************
** Procedure: RtcDataRequestBeginRequest **
******************************************)
procedure RtcDataRequestBeginRequest(Sender: TRtcConnection);
begin
with TRtcDataClient(Sender)
do begin
Request['
Content-type']:='
text/xml';
Write(AnsiString(XMLDocument.XML.Text));
end;
end;
Alle anderen Kombinationen die ich ausprobiert hatte, haben mir immer die
XML Daten so verbaut,
dass der Server die Anfragen nicht gefressen hat. Mit dieser Kombination tut nun alles wie es soll.
Make me a sandwich! - What? Make it yourself. - Sudo make me a sandwich! - Okay