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

delphi – IdHTTP.get返回HTTP1.1 / 403禁止

发布时间:2020-12-15 09:41:37 所属栏目:大数据 来源:网络整理
导读:我正在尝试使用DelphiXE编译程序和IdHTTP组件访问我网站上的update.txt文件. 我正在使用的代码如下: procedure TFormAbout.SpeedButtonUpdateClick(Sender: TObject);function CheckUpdates: String;var lIdHttp: TIdHTTP;begin lIdHttp := TIdHTTP.Create(
我正在尝试使用DelphiXE编译程序和IdHTTP组件访问我网站上的update.txt文件.

我正在使用的代码如下:

procedure TFormAbout.SpeedButtonUpdateClick(Sender: TObject);

function CheckUpdates: String;
var lIdHttp: TIdHTTP;
begin
  lIdHttp := TIdHTTP.Create(nil);
  result := lIdHttp.Get('http://www.test.com/test_down_load/update.txt');
end;

var
sWebVersion: String;
sVersionList: TStringList;

begin
try
  sWebVersion := Checkupdates;
except
  on E: Exception do
  begin 
    ShowMEssage(E.ErrorMessage);
    MessageDlg('An Error occured checking for an update.',mtError,[mbOK],0);
  end;
end;
if sWebVersion <> '' then
  begin
    sVersionList.CommaText := sWebVersion;
    ShowMessage('Version: ' + sVersionList[0] + ' - ' + 'Date: ' + sVersionList[1]);
  end;
end;

但是会导致错误:HTTP1.1 / 403禁止

已使用以下属性设置IdHTTP组件.

HandleRedirects := true;
HTTPOptions [hoForceEncodeParams];
ProtocolVersion := pv1_1;
Request.UserAgent := Mozilla/5.0 (compatible; Test)

如果我在IE浏览器中输入URL,它会返回没有错误的文件,但是从我的程序访问时,我收到错误.
任何指针将不胜感激.
.htaccess对于该网站是正确的.
该文件的权限在网站上是正确的:0644.

我是否必须为IdHTTP组件设置任何其他属性.我只在about表单上有这个组件.我还需要别的吗?

updateinfo.txt文件只包含引号中的文本:
“18.3.5,2011 / 12/17”

我这里只是用“test”代替我的实际程序名和URL.

问候
阿德里安

解决方法

403表示您无权访问请求的URL.服务器可能要求您提供用户名/密码,尤其是因为您使用的是.htaccess文件.使用Request.UserName和Request.Password属性.至于为什么浏览器不要求用户名/密码,我的猜测是浏览器从早期访问中缓存它们.

顺便说一下,你的SpeedButtonUpdateClick()有内存泄漏.您正在创建一个新的TIdHTTP对象,但您没有释放它.

(编辑:李大同)

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

    推荐文章
      热点阅读