Delphi XE 5-THTTPRIO-抢先连接



我有一个用DELPHI XE 5创建的web服务客户端,我使用了THTTPRIO,导入了wsdl并创建了".pas"文件。web服务的服务器请求抢先的基本身份验证(与SoapUI配合良好(;我知道如何使用THTTPReqResp的用户和密码进行身份验证。

rio := THTTPRIO.Create(nil);
HTTPReqResp1 := THTTPReqResp.Create(rio);
HTTPReqResp1.UserName := sUserName;
HTTPReqResp1.Password := sPasswordEncrypted;

但我没有连接到web服务,因为我不知道如何进行抢占,以及在Delphi中是否可能。

有人能帮我吗?:(

我刚刚发现如何在DELPHI中使用"prepreprive"连接。您必须修改您的"rio.HTTPWebNode"的OnBeforePost,如下所示:

var
rio  : THTTPRIO;
HTTPReqResp1: THTTPReqResp;
uselessObject: TUselessClass;
try
rio := THTTPRIO.Create(nil);
uselessObject := TUselessClass.Create();
rio.HTTPWebNode.GetHTTPReqResp.OnBeforePost := 
uselessObject.HTTPRIOHTTPWebNode1BeforePost;

使用此程序:

procedure TUselessClass.HTTPRIOHTTPWebNode1BeforePost(const HTTPReqResp: THTTPReqResp; Data: Pointer);
var
auth,toEncode: string;
begin
toEncode := Format('%s:%s',[sUserName,sPasswordEncrypted]);
auth := 'Authorization: Basic ' + TIdEncoderMIME.EncodeString(toEncode);
HttpAddRequestHeaders(Data, PChar(auth), Length(auth), HTTP_ADDREQ_FLAG_ADD);
end;

相关内容

  • 没有找到相关文章

最新更新