我正在尝试创建一个小工具,可以监控我从ISP使用了多少带宽以及还剩下多少。他们有一个SOAP服务,我必须通过我的用户名和密码进行身份验证并验证客户端,然后我将得到2个GUID,必须将其传递到从数组返回使用统计信息的函数中。然后这些数据将被缓存1小时,之后我必须再次进行身份验证。
我已经在Delphi 2010内使用WSDL导入程序生成了一个单元。(不确定是否应该发布,因为它相当大)
我正在尝试使用以下代码对第一部分进行身份验证:
上述代码总是返回以下错误:
我已经在Delphi 2010内使用WSDL导入程序生成了一个单元。(不确定是否应该发布,因为它相当大)
我正在尝试使用以下代码对第一部分进行身份验证:
procedure TForm1.btnAuthClick(Sender: TObject);
var
fGUID: string;
begin
HTTPRIO1.URL := 'https://webservices.zen.co.uk/broadband/v3.11/serviceengine.asmx?WSDL';
try
fGUID := (HTTPRIO1 as ServiceEngineSoap).Authenticate(edtUserName.Text,edtPassword.Text);
Label1.Caption := fGUID;
except
on E: Exception do
Memo1.Lines.Text := E.Message;
end;
end;
上述代码总是返回以下错误:
我尝试使用WSDLLocation替换服务和端口。消息中需要但未出现最终接收者的标头http://schemas.xmlsoap.org/ws/2004/08/addressing:Action。
procedure TForm1.btnAuthClick(Sender: TObject);
var
fGUID: string;
begin
HTTPRIO1.WSDLLocation := 'https://webservices.zen.co.uk/broadband/v3.11/serviceengine.asmx?WSDL';
HTTPRIO1.Service := 'ServiceEngine';
HTTPRIO1.Port := 'ServiceEngineSoap';
try
fGUID := (HTTPRIO1 as ServiceEngineSoap).Authenticate(edtUserName.Text,edtPassword.Text);
Label1.Caption := fGUID;
except
on E: Exception do
Memo1.Lines.Text := E.Message;
end;
end;
这将始终生成以下错误:
无法从WSDL“https://webservices.zen.co.uk/broadband/v3.11/serviceengine.asmx?WSDL”检索Service/Port'ServiceEngine'/'ServiceEngineSoap'的URL端点
我在这里做错了什么?如果我实际上应该发送标头,那么我如何才能通过身份验证来向服务进行认证?