加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Indy(Delphi)Http客户端和摘要式身份验证

发布时间:2020-12-15 09:25:38 所属栏目:大数据 来源:网络整理
导读:我正在尝试与需要摘要式身份验证的LAN(http://)服务器进行通信. uses IdHttp,IdAuthenticationDigest;...begin IdHttp1 := TIdHttp.Create(nil); try IdHttp1.Request.Username := 'xxx'; IdHttp1.Request.Password := 'xxx'; Result := IdHttp1.Get(URL) f
我正在尝试与需要摘要式身份验证的LAN(http://)服务器进行通信.

uses IdHttp,IdAuthenticationDigest;

...

begin
  IdHttp1 := TIdHttp.Create(nil);
  try
    IdHttp1.Request.Username := 'xxx';
    IdHttp1.Request.Password := 'xxx';

    Result := IdHttp1.Get(URL)
  finally
    idHttp1.Free;
  end;
end;

不幸的是,我从服务器获得了HTTP / 1.0 401 Unauthorized as IdHttp1.ResponseText.如果输入用户名和密码,Firefox和Chrome都可以正常连接.

我是SVN和Delphi 7的最新Indy 10.

服务器的http标头(LAN上为192.168.1.10):

Connecting...
Resolving hostname dm7020hd.
Connecting to 192.168.1.10.
Connected.
Server: webserver/1.0
Date: Thu,31 Jan 2013 11:28:32 GMT
WWW-Authenticate: Digest algorithm="MD5",realm="Forbidden",qop="auth",opaque="7edfc2c756ad1f795651f15f88c32b25",nonce="d2ef913b753b3b6ad8878b34b93cfc5a"
Content-Type: text/html
Cache-Control: no-store,no-cache,must-revalidate
Expires: Sat,10 Jan 2000 05:00:00 GMT
Content-Length: 15
Last-Modified: Thu,31 Jan 2013 11:28:32 GMT
ETag: "753868328"
Connection: close
Disconnected

我已经搜索了很多关于这个问题的信息,显然很多人都遇到了indy身份验证问题(它有用吗?).

解决方法

您需要在TIdHTTP.HTTPOptions属性中启用hoInProcessAuth标志.默认情况下禁用它.如果没有该标志,TIdHTTP.Get()将不会发送第二个HTTP请求,指定摘要凭据以回复服务器的401响应.它将简单地退出并期望您处理401响应并根据需要自己发送新请求.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读