我尝试使用Delphi 2010使用一个Web服务。 此Web服务在端口8000上进行身份验证。
我实现了
function TForm4.EncodeLoginPW(const ALogin, APW: string): string;
begin
Result := EncdDecd.EncodeString(ALogin + ':' + APW); // EncdDecd is not documented in
end;
procedure TForm4.HTTPRIO1HTTPWebNode1BeforePost(const HTTPReqResp: THTTPReqResp;
Data: Pointer);
var
s: string;
begin
s := 'Authorization: Basic ' + EncodeLoginPW(UserName, Password);
if not HttpAddRequestHeaders(Data, PChar(s), Length(s), HTTP_ADDREQ_FLAG_ADD) then
ShowMessage('HttpAddRequestHeaders' + SysErrorMessage(GetLastError()));
end;
但我仍然留言“需要验证”。
我做错了吗?
答案 0 :(得分:2)
对于基本身份验证,这应该有效:
Basic Authentication in Delphi 7 SOAP
如this post中所述,较新版本的Delphi也允许使用
HTTPRio.HTTPWebNode.UserName := Username;
HTTPRio.HTTPWebNode.Password := Password;
答案 1 :(得分:0)
如果它仍然不起作用,您可以尝试使用其他客户端(.Net或Java),并在本地代理(Fiddler或Don's Proxy)的帮助下比较HTTP流量或嗅探器(WireShark),找到相关的差异。