我正在构建一个应该使用Soap服务的Delphi Win32应用程序,它最终成为一个基于.NET的应用程序。一个函数返回一个DataTable。当然,Delphi Win32(不是Delphi .NET)本身无法理解这一点。
我能用它做任何事吗?我也很乐意手动解析XML,但我不知道如何掌握原始XML响应。
WSDL:https://stratus.voxamvia.co.za/api.asmx?WSDL
函数:GetNotifications,返回GetNotificationsResult,构建为:
GetNotificationsResult = class(TRemotable)
private
Fnamespace: WideString;
Fnamespace_Specified: boolean;
FtableTypeName: WideString;
FtableTypeName_Specified: boolean;
procedure Setnamespace(Index: Integer; const AWideString: WideString);
function namespace_Specified(Index: Integer): boolean;
procedure SettableTypeName(Index: Integer; const AWideString: WideString);
function tableTypeName_Specified(Index: Integer): boolean;
published
property namespace: WideString Index (IS_ATTR or IS_OPTN) read Fnamespace write Setnamespace stored namespace_Specified;
property tableTypeName: WideString Index (IS_ATTR or IS_OPTN) read FtableTypeName write SettableTypeName stored tableTypeName_Specified;
end;
任何帮助表示赞赏!
如果我实现RemObjects会有帮助吗?
答案 0 :(得分:3)
您可以从xml构建数据集。这应该为您提供一个起点:http://www.gekko-software.nl/DotNet/Art07.htm和http://www.gekko-software.nl/DotNet/Art08.htm。
我没有使用过RemObjects的DataAbstract,所以我无法给出建议。
LE:您可以按照drbob编写的这篇简单文章访问和使用.net编写的Web服务 - Consuming C# Web Services with Delphi 7 Professional
其中还包含一个关于如何动态构建以及如何使用THttpRio的小例子(与Mikael Eriksson的答案相同)
答案 1 :(得分:1)
我能用它做任何事吗?我很乐意手动解析XML 我也不知道如何掌握原始XML响应。
您可以在OnAfterExecuteEvent组件的THTTPRIO上获取该广告。在那里,您将SOAPResponse: TStream
作为参数。
<强>更新强>
要启动事件,请添加THTTPRIO组件,创建事件处理程序并将RIO组件用作GetAPISoap
的第三个参数。
这对我有用。 HTTPRIO1是表单上的一个组件。
procedure TForm7.Button1Click(Sender: TObject);
var
A: APISoap;
begin
A := GetAPISoap(False, '', HTTPRIO1);
A.Validate_User('', '');
end;