gpt4 book ai didi

delphi - Indy (Delphi) Http 客户端和摘要认证

转载 作者:可可西里 更新时间:2023-11-01 15:27:06 30 4
gpt4 key购买 nike

我正在尝试与需要摘要式身份验证的 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 作为 IdHttp1.ResponseText。如果我输入用户名和密码,Firefox 和 Chrome 都可以正常连接。

我有来自 SVN 和 Delphi 7 的最新 Indy 10。

服务器的http头(局域网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 响应并根据需要自行发送新请求。

关于delphi - Indy (Delphi) Http 客户端和摘要认证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14645346/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com