问题标签 [idhttp]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
16095 浏览

delphi - IdHTTP.get 返回 HTTP1.1/ 403 Forbidden

我正在尝试使用 DelphiXE 编译程序和 IdHTTP 组件访问我网站上的 update.txt 文件。

我正在使用的代码如下:

然而,这会导致错误:HTTP1.1/ 403 Forbidden

IdHTTP 组件已设置有以下属性。

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

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

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

我在这里简单地使用了“测试”来代替我的实际程序名称和 URL。

问候阿德里安

0 投票
3 回答
5725 浏览

delphi - Delphi:使用 URL 转发下载文件

我有一个带有 URL 转发(伪装)到另一个站点的免费域名。

如果我在浏览器的网址中键入http://my.com/1.zip,那么它会转到http://his.com/1.zip并下载一个文件。

我怎样才能对 Indy TIdHTTP (Delphi XE2) 做同样的事情。浏览器和我一开始会收到 404 错误,但后来他们以某种方式下载了除我之外的文件。

我需要使用第一个链接,但实际上是从另一个站点下载的。例如,第一个站点有一个 xxx.zip 文件。我想去http://my.com/xxx.zip但实际上是从http://his.com/xxx.zip(文件存储的地方)下载。

谢谢!

编辑:

我设置HandleRedirects为 true,分配了一个CookieManager(我已经看过这个问题Indy - IdHttp 如何处理页面重定向?)。

尝试在您的 Delphi中下载此http://liga-updates.ua.tc/GDI+.zip

0 投票
2 回答
2499 浏览

delphi - TIdHTTP:在发送请求之前检查有效的 cookie?

我正在使用 IndyTIdHTTPTIdCookieManager. 我想检查我即将发送的请求的当前 cookie,并确定它有效的可能性(我知道我不能 100% 确定服务器会接受我的请求)。如果没有 cookie,或者它们已过期,我将首先登录并获取新的 cookie。否则,只需发送请求。

我将如何进行这样的检查?我相信我必须在发送请求之前检查 cookie 管理器,但不知道要检查什么。

0 投票
1 回答
1330 浏览

delphi - 从列表框中选择一个代理 (IDHTTP)

我正在准备申请。IDHTTP:使用 Get 方法。但也有一些问题。我想创建一个代理列表并单击添加了 IDHTTP 的列表框项(代理地址)。对不起,我不懂英语。

我的代码;

我想;

我添加 Listbox1 代理..稍后..单击 Listbox1 项。后来.. BitBtn2 点击。

谢谢。

0 投票
2 回答
3730 浏览

delphi - Delphi:使用带有 IdHTTP 的 Google URL Shortener - 400 错误请求

我正在尝试从 Delphi 中通过其 API访问 URL Shortener ( http://goo.gl/ )。但是,我得到的唯一结果是:HTTP/1.0 400 Bad Request (reason: parseError)

这是我的代码(在带有Button1Memo1IdHTTP1的表单上,其中IdSSLIOHandlerSocketOpenSSL1作为其 IOHandler。我从http://indy.fulgan.com/SSL/获得了必要的 32 位 OpenSSL DLL ,并将它们放在 . exe的目录):

更新:我在这个例子中没有使用我的 API 密钥(通常应该可以在没有尝试几次的情况下正常工作),但如果你想用自己的方式尝试,你可以将actionurl字符串 替换为'https://www.googleapis.com/urlshortener/v1/url?key=<yourapikey>';

ParseError 消息使我相信 longurl 在发布时的编码可能有问题,但我不知道要更改什么。

我已经为此困惑了很长一段时间,我确信这个错误就在我眼前——我只是现在没有看到它。因此,非常感谢任何帮助!

谢谢!

0 投票
0 回答
628 浏览

delphi - IdHTTP.Get 停止执行

我正在开发一个 .dll 文件(更具体地说是浏览器帮助对象 - BHO)。我需要接收一些托管在一个 TXT 文件中的设置。要读取这个 TXT 文件,我使用的是 IdHTTP,但是当我 .get 进入 TXT 地址时,它只会停止一切。我将粘贴下面的代码:

所以在这个过程的开始我有一个函数,看看我是否成功地得到了一些 TXT,因为你可以看到我正在使用一个名为TXTs的 TStringList 。所以,我在这个 TStringList 中添加了 3 个 TXTs 地址,并尝试连接直到找到一些有效地址。但是在函数的第一行(Body.Text:= HTTP.Get(URLTxt);)即使有一个有效的 TXT 地址,它也会停止......有人知道发生了什么吗?


我弄清楚发生了什么。但不知道为什么......当我设置时:

.Get 方法不起作用...如果有人可以向我澄清这一点,我将非常感激。

0 投票
2 回答
922 浏览

delphi - 放置在 DLL 中时,TIdHTTPServer 在 Free() 上挂起

TIdHTTPServer由于某些原因,我需要将一个实例放入 DLL 中。它是这样完成的:

接口单元:

服务器的容器:

DLL 导出GetInstance()函数:

服务器加载并正常工作,直到我退出主 EXE 文件。调试器显示主线程挂起FHTTP.Free();

我认为我不需要担心线程同步,因为我对 EXE 和 DLL 项目都使用了“使用运行时包构建”选项。

我该如何解决这个挂起?

0 投票
2 回答
14690 浏览

delphi - IdHTTP 基本身份验证访问冲突

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

代码延伸是:

我正在使用 Delphi 2010,并且已经尝试过类似的操作: IdHTTP1.Request.Authentication.Username := 'admin'; 但没有解决问题...

0 投票
1 回答
1888 浏览

delphi - IdHTTP.Get 不等待回答

我在使用 Idhttp.Get 方法时遇到了一些问题。我认为它默认在阻塞模式下工作(等待答案转到下一行),但我只是看到它没有等待答案转到另一行。我将它与线程一起使用,但我认为这不是问题。代码是:

所以,我只是注意到我没有得到正确的 HttpCode 值,因为在“获取”方法之后,它只是继续执行而不等待“获取”完成。我怎么解决这个问题??

0 投票
1 回答
1548 浏览

delphi - 断开连接时的 IdHTTP 访问冲突

印地 10:

两个线程,线程 1 在 TIdHTTP 上调用 Get 并阻止读取数据。线程 2 将在同一个 TIdHTTP 上调用 disconnect 以中断 Get。

我在 TIdHTTP 上使用 Digest Authentication,我偶尔会得到一个 AV。

线程 1 的调用栈:

线程 2 的调用堆栈:

基本上在 DoRequest 结束时它会断开连接。似乎在尝试释放 Request.Authentication 的断开连接上存在竞争条件。

下载了 Indy 10 的最新代码并查看了我认为行为应该相同的代码。

我相信从另一个线程调用断开连接是推荐的使用模式,我错了吗?这是印地的一个错误吗?似乎有必要锁定断开连接,但很难看到可能会产生什么死锁。还有其他人遇到这个吗?