问题标签 [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 投票
2 回答
1910 浏览

c++ - Indy 10 IdHTTP实现的一些问题

关于 IdHTTP 的 Indy 10,很多事情都运行得很完美,但是这里也有一些事情做得不太好。这就是为什么,再一次,我需要你的帮助。

下载按钮已完美运行。我正在使用以下代码:

但是,一个"Cancel Resume"按钮仍然无法恢复中断的下载。Get()意思是,尽管我使用了IdHTTP->Request->Ranges属性,但每次我打电话时它总是发回整个文件。

我使用以下代码:

同时,通过使用此处的 FormatBytes 函数,已经能够仅显示下载文件的大小。但仍无法确定下载速度或传输速度。

我正在使用以下代码:

请指教并举个例子。任何帮助都将不胜感激!

0 投票
1 回答
1438 浏览

string - idhttp - 加载页面时获取响应字符串

我需要在页面加载之前接收到字符串(用于 asterix http AMI 事件)。所以我试图在 idHttp 的 OnWork 事件中访问接收到的字符串,但出现错误:

更新:我按照 Remy Lebeau 的建议创建了自定义类 (TAMIStringStream),但仍然出现错误。我做错了什么?

0 投票
2 回答
4151 浏览

delphi - 找出文件的类型(GIF、JPG、PNG) - DELPHI

我为每个 URL 携带图像并显示 TImage 。我将使用 JPG、GIF 和 PNG。但我不知道如何找出每个文件拥有什么样的扩展名,然后区分。如何获取 header 或任何其他方法让我知道什么类型的文件:GIF 或 PNG 或 JPG?

0 投票
1 回答
1108 浏览

javascript - 执行关联的 JavaScript 后,如何获取页面的源 HTML?

关于这个问题已经有几篇安静的帖子,但似乎没有人真正回答我的问题。

我使用TIdHttp来加载这个网站的源代码:http: //www.nationalgeographic.com/

我尝试提取一些数据,但意识到数据是由脚本生成的。源代码中有一个脚本和一些外部 js 文件的链接。

我怎么可能运行页面上的部分或全部脚本并生成源代码?

我在辅助线程中使用这部分,并希望避免使用 WebBrowser 组件。

我可以从 Idhttp 生成的源代码中提取脚本或链接,但是运行一个 js 文件,idhttp.get(*.js)但我认为这可能太简单而无法工作。

0 投票
1 回答
1657 浏览

delphi - Delphi TIdHTTP POST 不编码加号

我在表单上有一个 TIdHTTP 组件,我正在向基于云的服务器发送一个 http POST 请求。除了 1 个字段外,一切都运行良好:带有加号的文本字符串,例如“hello world+dog”,正在保存为“hello world dog”。

研究这个问题,我意识到URL中的“+”被认为是一个空格,所以必须对其进行编码。这就是我难过的地方;看起来 POST 请求的其余部分是由 TIdHTTP 组件编码的,除了“+”。

通过 Fiddler 查看请求,它以“hello%20world+dog”的形式出现。如果我手动编码“+”(hello world%2Bdog),结果是“hello%20world%252Bdog”。

我真的不知道我在这里做什么,所以如果有人能指出我正确的方向,那将不胜感激。

其他信息:

我使用的是 Delphi 2010。该组件没有任何特殊设置,我想我可能需要设置一些东西?Fiddler 中的标头内容类型是“application/x-www-form-urlencoded”。

然后,德尔福代码:

0 投票
1 回答
348 浏览

delphi - 我如何保存图像并稍后在 Idhttp 中使用它们

通过在此处跟进我之前关于listview 线程内部更新的问题

我开始以不同的方式思考以解决我以前的问题,因为下载过程需要太长时间并且占用太多带宽我想下载GIFimage然后将其保存在磁盘上然后稍后在我的应用程序中使用它这是当前下载线程代码

我想在计算机客户端上保存 FURL 的图像然后如果该图像请求再次下载中止下载过程并从客户端计算机加载它我怎么可能做到这一点?

0 投票
1 回答
364 浏览

indy10 - IdHTTP:EIdException ResponseCode(着色+替换)

我这里有两个问题。所以我需要你的帮助。

  1. microsoft.com 响应代码的结果是某个时间 HTTP/1.1 403 Forbidden 或 HTTP/1.1 200 OK。

    但是当我检查它时,http://web-sniffer.net/http://tools.seobook.com/server-header-checker的结果是HTTP/1.1 302 Moved Temporarily.

    为什么 IdHTTP 的结果与上面的两个 url 不同?IdHTTP 如何实现相同的 http 状态码?

  2. 着色并替换 TListBox 中 EIdException / Exception 的 E.Message 错误。

    例如,我想"Socket Error # 10061Connection refused""your connection is refused".

    但是使用这种方式,结果仍然相同。

感谢您抽时间阅读。任何帮助或建议将不胜感激!

0 投票
1 回答
419 浏览

delphi - Delphi TIdHTTPServer 逐渐增加内存

我有一个在 XE6 上使用 TIdHTTPServer 构建的服务器(默认安装 Indy 10 并在组件上设置默认选项)用于文件下载:

经过数月(6 个月)和大量请求(更少或更多 1'000'000)后,服务器进程将私有内存(在任务管理器上)增加到 50 MB 以上。

TIdHTTPServer 是否泄漏内存?

更新

在一个小的测试应用程序中

无泄漏

我也尝试过使用 FastMM dll,这是报告(我的 SO 是意大利语)

--------------------------------2015/11/2 14:52:38-------- -----------------

泄漏di un blocco。尺寸 è: 20

Questo blocco è stato allocato dal thread 0x730, e lo stack trace (indirizzo restituito) in quel momento 时代:40678A 4087AF 408ED6 640996 [IdThreadSafe][IdThreadSafe][IdThreadSafe..TIdThreadSafeObjectList][144] 6C996F [IdGlobalProtocols.pas][IdGlobalProtocols] [IdGlobalProtocols.IdGlobalProtocols][4743] 6C9984 [IdGlobalProtocols.pas][IdGlobalProtocols][IdGlobalProtocols.IdGlobalProtocols][4744] 6C99D5 [IdThread.pas][IdThread][IdThread.IdThread][732] 409F80 409FEC 40F4B7 [SysInit.pas] [SysInit][SysInit.@InitExe][1191] 6CA144 [WMain.pas][WMain][WMain.WMain][295] 75C6337A [BaseThreadInitThunk] 77AF9882 [RtlInitializeExceptionChain 处的未知函数] 77AF9855 [RtlInitializeExceptionChain 处的未知函数]

Il blocco è attualmente usato da una istanza della classe: TIdThreadSafeInteger

Il numero di allocazione è: 475

d. ` . ú ~ . . . . . . . . . . z 。€ € € . . . . ±Õó~。. . . . . . . . . . . . . . . 一个 。. . Šg@。¯‡@。ÖŽ@。¤ ^ @ 。… Ò . º … Ò . . ü L. ž û L . . CK 如果 。] l 。€Ÿ@。ì Ÿ @ 。· ô@。D¡ z 3 Æ u ‚ ~ ¯ w U ~ ¯ w 。. . . . . . . . . . . 0 . . . 0 . . . ¦ g@。我 ‡ @ 。!@ . Æ ^ @ 。Ó ^ @ 。8 y L . Ó ^ @ 。b CK。Ó ^ @ 。> ' f . . Ÿ @ . . 英镑@。‡ ¡ z 3 Æ u ‚ ~ ¯ w U ~ ¯ w 。. . . . . . . . . . . . . . . . . . . . . . . ¼ 我 N 。E ¼ Ë R A Ó 。€ € € º C 4 € € € €</p> . . . . . . . . . . 一个 。. . Šg@。¯‡@。ÖŽ@。¤ ^ @ 。… Ò . º … Ò . . ü L. ž û L . . CK 如果 。] l 。€Ÿ@。ì Ÿ @ 。· ô@。D¡ z 3 Æ u ‚ ~ ¯ w U ~ ¯ w 。. . . . . . . . . . . 0 . . . 0 . . . ¦ g@。我 ‡ @ 。!@ . Æ ^ @ 。Ó ^ @ 。8 y L . Ó ^ @ 。b CK。Ó ^ @ 。> ' f . . Ÿ @ . . 英镑@。‡ ¡ z 3 Æ u ‚ ~ ¯ w U ~ ¯ w 。. . . . . . . . . . . . . . . . . . . . . . . ¼ 我 N 。E ¼ Ë R A Ó 。€ € € º C 4 € € € €</p> . . . . . . . . . . 一个 。. . Šg@。¯‡@。ÖŽ@。¤ ^ @ 。… Ò . º … Ò . . ü L. ž û L . . CK 如果 。] l 。€Ÿ@。ì Ÿ @ 。· ô@。D¡ z 3 Æ u ‚ ~ ¯ w U ~ ¯ w 。. . . . . . . . . . . 0 . . . 0 . . . ¦ g@。我 ‡ @ 。!@ . Æ ^ @ 。Ó ^ @ 。8 y L . Ó ^ @ 。b CK。Ó ^ @ 。> ' f . . Ÿ @ . . 英镑@。‡ ¡ z 3 Æ u ‚ ~ ¯ w U ~ ¯ w 。. . . . . . . . . . . . . . . . . . . . . . . ¼ 我 N 。E ¼ Ë R A Ó 。€ € € º C 4 € € € €</p> D¡ z 3 Æ u ‚ ~ ¯ w U ~ ¯ w 。. . . . . . . . . . . 0 . . . 0 . . . ¦ g@。我 ‡ @ 。!@ . Æ ^ @ 。Ó ^ @ 。8 y L . Ó ^ @ 。b CK。Ó ^ @ 。> ' f . . Ÿ @ . . 英镑@。‡ ¡ z 3 Æ u ‚ ~ ¯ w U ~ ¯ w 。. . . . . . . . . . . . . . . . . . . . . . . ¼ 我 N 。E ¼ Ë R A Ó 。€ € € º C 4 € € € €</p> D¡ z 3 Æ u ‚ ~ ¯ w U ~ ¯ w 。. . . . . . . . . . . 0 . . . 0 . . . ¦ g@。我 ‡ @ 。!@ . Æ ^ @ 。Ó ^ @ 。8 y L . Ó ^ @ 。b CK。Ó ^ @ 。> ' f . . Ÿ @ . . 英镑@。‡ ¡ z 3 Æ u ‚ ~ ¯ w U ~ ¯ w 。. . . . . . . . . . . . . . . . . . . . . . . ¼ 我 N 。E ¼ Ë R A Ó 。€ € € º C 4 € € € €</p>

--------------------------------2015/11/2 14:52:38-------- ----------------- Leak di un blocco。尺寸 è: 36

Questo blocco è stato allocato dal thread 0x730, e lo stack trace (indirizzo restituito) in quel momento era: 40678A 4087AF 408ED6 440106 [System.SyncObjs.pas][System][System.SyncObjs.TEvent.Create][827] 412FEA [ Winapi.Windows.pas][Winapi][Winapi.Windows.GetProcAddress][34295] 6C98AB [IdStack.pas][IdStack][IdStack.IdStack][1138] 409F80 409FEC 40F4B7 [SysInit.pas][SysInit][SysInit. @InitExe][1191] 6CA144 [WMain.pas][WMain][WMain.WMain][295] 75C6337A [BaseThreadInitThunk] 77AF9882 [RtlInitializeExceptionChain 处的未知函数] 77AF9855 [RtlInitializeExceptionChain 处的未知函数]

Il blocco è attualmente usato da una istanza della classe:TIdCriticalSection

Il numero di allocazione è: 458

作为 。ÿ ÿ ÿ ÿ 。. . . . . . . . . . . . . . . . . . . . ̧°€€€€。. . . ' . ú ~ . . . . . . . . . . . . . . . . Ñ . . . Šg@。英镑¤@。Ô ¦ @ 。Ñã@。. ´ ¯ w µ 3 ¯ w ã / ¯ w ú ú w + × Æ u H × Æ u º Ö Æ u ~ Ö Æ u ' Ö Æ u 2 ú w 。ÖÆ你。Ô Æ u þ Õ Æ u 4 G ± w ¡ G ± w 。ò ® 重量 ò ® w 0 。. . 0 . . . ¦ g@。] ¥ @ 。一个 @ 。ķ ' b 。. Ÿ @ . . 英镑@。‡ ¡ z 3 Æ u ‚ ~ ¯ w U ~ ¯ w 。. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . “……°……p”——Ê . ' . ú ~ . . . . . . . . . . . . . . . . Ñ . . . Šg@。英镑¤@。Ô ¦ @ 。Ñã@。. ´ ¯ w µ 3 ¯ w ã / ¯ w ú ú w + × Æ u H × Æ u º Ö Æ u ~ Ö Æ u ' Ö Æ u 2 ú w 。ÖÆ你。Ô Æ u þ Õ Æ u 4 G ± w ¡ G ± w 。ò ® 重量 ò ® w 0 。. . 0 . . . ¦ g@。] ¥ @ 。一个 @ 。ķ ' b 。. Ÿ @ . . 英镑@。‡ ¡ z 3 Æ u ‚ ~ ¯ w U ~ ¯ w 。. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . “……°……p”——Ê . ' . ú ~ . . . . . . . . . . . . . . . . Ñ . . . Šg@。英镑¤@。Ô ¦ @ 。Ñã@。. ´ ¯ w µ 3 ¯ w ã / ¯ w ú ú w + × Æ u H × Æ u º Ö Æ u ~ Ö Æ u ' Ö Æ u 2 ú w 。ÖÆ你。Ô Æ u þ Õ Æ u 4 G ± w ¡ G ± w 。ò ® 重量 ò ® w 0 。. . 0 . . . ¦ g@。] ¥ @ 。一个 @ 。ķ ' b 。. Ÿ @ . . 英镑@。‡ ¡ z 3 Æ u ‚ ~ ¯ w U ~ ¯ w 。. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . “……°……p”——Ê ´ ¯ w µ 3 ¯ w ã / ¯ w ú ú w + × Æ u H × Æ u º Ö Æ u ~ Ö Æ u ' Ö Æ u 2 ú w 。ÖÆ你。Ô Æ u þ Õ Æ u 4 G ± w ¡ G ± w 。ò ® 重量 ò ® w 0 。. . 0 . . . ¦ g@。] ¥ @ 。一个 @ 。ķ ' b 。. Ÿ @ . . 英镑@。‡ ¡ z 3 Æ u ‚ ~ ¯ w U ~ ¯ w 。. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . “……°……p”——Ê ´ ¯ w µ 3 ¯ w ã / ¯ w ú ú w + × Æ u H × Æ u º Ö Æ u ~ Ö Æ u ' Ö Æ u 2 ú w 。ÖÆ你。Ô Æ u þ Õ Æ u 4 G ± w ¡ G ± w 。ò ® 重量 ò ® w 0 。. . 0 . . . ¦ g@。] ¥ @ 。一个 @ 。ķ ' b 。. Ÿ @ . . 英镑@。‡ ¡ z 3 Æ u ‚ ~ ¯ w U ~ ¯ w 。. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . “……°……p”——Ê . “……°……p”——Ê . “……°……p”——Ê

--------------------------------2015/11/2 14:52:38-------- ----------------- Leak di un blocco。尺寸 è: 36

Questo blocco è stato allocato dal thread 0x730, e lo stack trace (indirizzo restituito) in quel momento 时代:40678A 4087AF 408ED6 440106 [System.SyncObjs.pas][System][System.SyncObjs.TEvent.Create][827] 4087B8 6409AF [IdThreadSafe][IdThreadSafe][IdThreadSafe..TIdThreadSafeObjectList][144] 6C99D5 [IdThread.pas][IdThread][IdThread.IdThread][732] 409F80 409FEC 40F4B7 [SysInit.pas][SysInit][SysInit.@InitExe][ 1191] 6CA144 [WMain.pas][WMain][WMain.WMain][295] 75C6337A [BaseThreadInitThunk] 77AF9882 [RtlInitializeExceptionChain 处的未知函数] 77AF9855 [RtlInitializeExceptionChain 处的未知函数]

Il blocco è attualmente usato da una istanza della classe:TIdCriticalSection

Il numero di allocazione è: 476

è › Š。ÿ ÿ ÿ ÿ 。. . . . . . . . . . . . . . . . . . . v È 。€ € € . . . . ' . ú ~ . . . . . . . . . . . . . . . . ß 。. . Šg@。英镑¤@。0 © @ 。&米K。ķ。. ; F 。- l 。€Ÿ@。ì Ÿ @ 。· ô@。D¡ z 3 Æ u ‚ ~ ¯ w U ~ ¯ w 。. . . . . . . . . . . . . . . . . . . . . . . . . . . 0 . . . 0 . . . ] ¥ @ 。• º @ 。Ý ¹ @ 。Ý º @ 。EÈ@。é Ä @ . % 一个 @ 。Æ@。› n K . ¶克K。Ó ^ @ 。z@f。. Ÿ @ . . 英镑@。‡ ¡ z 3 Æ u ‚ ~ ¯ w U ~ ¯ w 。. . . . . . . . . . . . . . . °。. . ) ” Ò P ' . ú ~ . . . . . . . . . . . . . . . . ß 。. . Šg@。英镑¤@。0 © @ 。&米K。ķ。. ; F 。- l 。€Ÿ@。ì Ÿ @ 。· ô@。D¡ z 3 Æ u ‚ ~ ¯ w U ~ ¯ w 。. . . . . . . . . . . . . . . . . . . . . . . . . . . 0 . . . 0 . . . ] ¥ @ 。• º @ 。Ý ¹ @ 。Ý º @ 。EÈ@。é Ä @ . % 一个 @ 。Æ@。› n K . ¶克K。Ó ^ @ 。z@f。. Ÿ @ . . 英镑@。‡ ¡ z 3 Æ u ‚ ~ ¯ w U ~ ¯ w 。. . . . . . . . . . . . . . . °。. . ) ” Ò P ' . ú ~ . . . . . . . . . . . . . . . . ß 。. . Šg@。英镑¤@。0 © @ 。&米K。ķ。. ; F 。- l 。€Ÿ@。ì Ÿ @ 。· ô@。D¡ z 3 Æ u ‚ ~ ¯ w U ~ ¯ w 。. . . . . . . . . . . . . . . . . . . . . . . . . . . 0 . . . 0 . . . ] ¥ @ 。• º @ 。Ý ¹ @ 。Ý º @ 。EÈ@。é Ä @ . % 一个 @ 。Æ@。› n K . ¶克K。Ó ^ @ 。z@f。. Ÿ @ . . 英镑@。‡ ¡ z 3 Æ u ‚ ~ ¯ w U ~ ¯ w 。. . . . . . . . . . . . . . . °。. . ) ” Ò P z 3 Æ u ‚ ~ ¯ w U ~ ¯ w 。. . . . . . . . . . . . . . . . . . . . . . . . . . . 0 . . . 0 . . . ] ¥ @ 。• º @ 。Ý ¹ @ 。Ý º @ 。EÈ@。é Ä @ . % 一个 @ 。Æ@。› n K . ¶克K。Ó ^ @ 。z@f。. Ÿ @ . . 英镑@。‡ ¡ z 3 Æ u ‚ ~ ¯ w U ~ ¯ w 。. . . . . . . . . . . . . . . °。. . ) ” Ò P z 3 Æ u ‚ ~ ¯ w U ~ ¯ w 。. . . . . . . . . . . . . . . . . . . . . . . . . . . 0 . . . 0 . . . ] ¥ @ 。• º @ 。Ý ¹ @ 。Ý º @ 。EÈ@。é Ä @ . % 一个 @ 。Æ@。› n K . ¶克K。Ó ^ @ 。z@f。. Ÿ @ . . 英镑@。‡ ¡ z 3 Æ u ‚ ~ ¯ w U ~ ¯ w 。. . . . . . . . . . . . . . . °。. . ) ” Ò P

0 投票
0 回答
181 浏览

delphi - Delphi:idHttp 内存泄漏

我用 Delphi XE6 制作了一个非常简单的 Indy 应用程序示例,并在 TIdHttp 中发现了内存泄漏。

  1. 我创建了一个空表单,并在其中放置了一个 IdHttp 组件:

空表

  1. 然后运行 ​​AQtime: 在此处输入图像描述
  2. 并关闭应用程序,报告的结果是这样的: 在此处输入图像描述

同样,FastMM 也会在另一个使用 idHttp 的项目上报告相同的内存泄漏。

我误解了这些结果还是 idHttp 中存在有效的内存泄漏?

在最后一种情况下,我该如何解决?

谢谢

0 投票
1 回答
2072 浏览

delphi - Delphi Indy TIdHTTP 网站识别机器人

我正在尝试向网站发送获取请求。问题是如果请求者是机器人,则网站正在重新定位

IdHTTP.get的结果是<!DOCTYPE html><head><META NAME="ROBOTS".....空的,我无法获得会话 ID。

http 请求标头与我的浏览器发送的相同。