gpt4 book ai didi

delphi - 使用 THTTPRIO 时如何停止出现身份验证对话框

转载 作者:行者123 更新时间:2023-12-03 15:58:02 24 4
gpt4 key购买 nike

我正在使用以下代码使用基本身份验证连接到 Web 服务:

var
RIO: THTTPRIO;
begin
RIO := THTTPRIO.Create(nil);

EndPoint := GetWebServicePort(True, '', RIO);

RIO.HTTPWebNode.UserName := 'xxxx';
RIO.HTTPWebNode.Password := 'yyyy';
...
end;

如果用户名和密码正确,则一切正常。但是,如果它们不正确,则会弹出一个 Windows 对话框,要求提供正确的凭据。我需要捕获错误而不是对话框。

enter image description here

如何停止弹出对话框?我搜索并找到了几个结果( Link 1Link 2 ),但似乎都没有提供真正的解决方案。

最佳答案

要捕获该错误,您可以使用 HTTP 客户端库,例如 Indy TIdHTTP,首先在 Web 服务地址上运行 HTTP GET(或 HEAD)请求,并捕获用户/密码更改时引发的异常。错了。

uses
... IdHTTP ...;

...
var
HTTP: TIdHTTP;

ValidCredentials := False;
...
HTTP.Request.Username := username;
HTTP.Request.Password := password;
HTTP.Request.BasicAuthentication := True;
try
HTTP.Head(url);
ValidCredentials := HTTP.ResponseCode = 200;
except
on ... (some Indy exception) do
begin
// signal that username / password are incorrect
...
end;
end;

if ValidCredentials then
begin
// invoke Web Service ...

关于delphi - 使用 THTTPRIO 时如何停止出现身份验证对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28674117/

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