繁体   English   中英

始终使用身份验证的消耗性Web服务给出消息需要身份验证

[英]consuming web service with authentication allways give message Authentication required

我尝试在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;

但我仍然收到消息“需要身份验证”。

我做错什么了吗?

对于基本身份验证,这应该起作用:

Delphi 7 SOAP中的基本身份验证

正如在解释这个帖子 ,德尔福的较新版本还允许使用

HTTPRio.HTTPWebNode.UserName := Username;
HTTPRio.HTTPWebNode.Password := Password;

如果仍然无法正常工作,则可以尝试使用其他客户端(.Net或Java),并在本地代理( FiddlerDon's Proxy )或嗅探器(WireShark)的帮助下比较HTTP流量,以找到相关的区别。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM