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,它会返回没有错误的文件,但是从我的程序访问时,我收到错误. 我是否必须为IdHTTP组件设置任何其他属性.我只在about表单上有这个组件.我还需要别的吗? updateinfo.txt文件只包含引号中的文本: 我这里只是用“test”代替我的实际程序名和URL. 问候 解决方法
403表示您无权访问请求的URL.服务器可能要求您提供用户名/密码,尤其是因为您使用的是.htaccess文件.使用Request.UserName和Request.Password属性.至于为什么浏览器不要求用户名/密码,我的猜测是浏览器从早期访问中缓存它们.
顺便说一下,你的SpeedButtonUpdateClick()有内存泄漏.您正在创建一个新的TIdHTTP对象,但您没有释放它. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |