首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IdHTTP基本身份验证访问冲突

IdHTTP基本身份验证访问冲突
EN

Stack Overflow用户
提问于 2012-09-15 20:47:35
回答 2查看 15.5K关注 0票数 8

我正在尝试使用Indy类进行HTTP身份验证。但是由于一些未知的原因,我在这一行中得到了一个访问冲突错误:IdHTTP1.Request.Authentication.Username :=用户名;

代码扩展是:

代码语言:javascript
复制
  IdHTTP1:= TIdHttp.Create(Application);
  IdHTTP1.ConnectTimeout:= 10000;
  IdHTTP1.Request.Clear;
  IdHTTP1.Request.BasicAuthentication:= true;
  IdHTTP1.Request.Authentication.Username := Username;
  IdHTTP1.Request.Authentication.Password := Password;
      try
        IdHTTP1.Get(PbxURL);
        HttpCode := IdHTTP1.ResponseCode;
      except
        on E: EIdHTTPProtocolException do
          HttpCode := IdHTTP1.ResponseCode;

我正在使用Delphi2010,并且已经尝试过这样做:IdHTTP1.Request.Authentication.Username := 'admin';,但是没有解决这个问题……

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-09-15 20:56:22

通过快速检查,当IdHTTP.Request.Authentication为真时,似乎不需要任何Request.BasicAuthentication (因此不需要创建)。您应该使用Request.UserNameRequest.Password

代码语言:javascript
复制
IdHTTP1:= TIdHttp.Create(Application);
IdHTTP1.ConnectTimeout:= 10000;
IdHTTP1.Request.Clear;
IdHTTP1.Request.BasicAuthentication:= true;
IdHTTP1.Request.UserName := UserName;
IdHTTP1.Request.Password := Password;
票数 20
EN

Stack Overflow用户

发布于 2012-09-16 03:17:08

默认情况下,在发送请求和接收身份验证响应之前不会分配Request.Authentication对象,然后触发OnSelectAuthorization事件,以确定为后续请求分配对象的类类型。

可以分配Request.Authentication对象的唯一其他方法是,在发送请求之前在自己的代码中手动执行,比如您提前知道服务器使用哪种方案而不发送请求来动态地发现该方案。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12441508

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档