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

delphi - Indy 10.6 - 连接到网络流时 idHTTP 100% CPU 使用率

多年来,我一直在使用 Indy 10.5 和几个旧版本。为了支持 HTTP Digest Authentication,我从他们的 SVN 下载了最新版本。

这是解决我遇到的 HTTP 摘要身份验证问题...

问题是自 10.6 以来所有版本的 CPU 使用率。

我能够并行创建 20 个线程来检索 HTTP 流(准确地说是网络摄像机 MJPEG 流),并且每个任务使用大约 1-3% 的 cpu,具体取决于分辨率和帧速率。(包括解析和解码)

我已经清理了通常使用 IOHandler、CookieManager 并依赖于 InternalWork 方法的代码,直到剩下 idHttp 的最基本用法,这可能是:

即使上面的代码没有改变任何设置,也消耗了 25% 的 CPU(所以它饱和了我电脑的 1 个核心)。

这是一个无限流,所以它不返回客户端是正常的,但由于流可能 < 100kb/s,检索它的 cpu 使用率应该接近于零......

我在另一个德语论坛上读到,添加此 HTTPOptions 可能会解决高 CPU 的问题,但在我的情况下它对 CPU 没有影响: HTTPOptions := [hoNoParseMetaHTTPEquiv]

我已经尝试过使用 Indy SVN 的先前版本,以确保它不是特定于日常构建的东西。

XE4、XE5 和 X6 附带的 10.6.0 版本有同样的问题,但如果我回滚到:Indy 10.5.5 - RS2010 RTM

然后一切都很好(除了 HTTP Digest 身份验证),它只使用了大约 2% 的 cpu ...

有没有人遇到过同样的情况并且有办法让当前版本的 indy 使用合理数量的 CPU 来执行此操作?

谢谢!

0 投票
1 回答
5339 浏览

android - 套接字错误 #113 没有路由到 Android 上的主机

在 Delphi XE6 FireMonkey 应用程序中,当我按下按钮时,我在 Android 上收到以下错误:

套接字错误 #113 没有到主机的路由

TIdHTTP组件是否需要另一个组件才能工作?

0 投票
1 回答
673 浏览

multithreading - Delphi: how to gracefully terminate a thread which uses IdHTTP during a connection timeout?

The question is about HTTP get implemented in a thread using IdHTTP. I want to terminate the thread gracefully if needed. For this purpose I check the Terminated property periodically within the HTTPWork event of IdHTTP. If the the terminate property is set then IdHTTP.disconnect method is called and the thread terminates.

This works fine, however consider the following problematic scenario:

For some reason the network goes down when the thread is started. After a timeout there is a socket error exception which is also OK, however during the timeout interval there are no events fired from IdHTTP, and therefore there is no way to check for the terminated property. So the question is how to gracefully terminate a thread which uses IdHTTP during a connection timeout?

0 投票
2 回答
4907 浏览

sockets - TIdHTTP 返回“套接字错误#10060'#$D#$A'连接超时。”

我是德尔福的新手。为了与 WebService 通信,我添加了两个组件,TIdHTTP 和 TIdSSLIOHandlerSocketOpenSSL for SSL(https)。从服务器获取响应时,它不起作用并返回“Socket Error # 10060'#$D#$A'Connection timed out”。我应该怎么办?下面是我的代码。

提前致谢。

0 投票
2 回答
1429 浏览

delphi - Delphi idhttp长URL参数自动拆分

我正在使用 indys idhttp 提交 URL(帖子)

它对我来说就像一个魅力。我正在尝试提交一个包含 300 个字符的参数的 URL(帖子),但会通过每 90 个字符添加一个“&”来自动拆分。所以服务器只接收 90 个字符而不是 300 个字符。

如果没有这种自动分隔,我如何提交一个包含 300 个字符参数的 URL?

0 投票
1 回答
3069 浏览

delphi - Delphi:使用 TidHTTPServer 传输文件并监控单个请求的字节发送

使用TIdHTTPServer(Indy 10.6),如何跟踪每个请求(关闭连接时)发送到客户端(用户浏览器)的字节数?

例如,在日志文件中:

0 投票
1 回答
1252 浏览

delphi - idHttp Get + Delphi + 请求的 URL 被拒绝

我正在尝试运行此代码:

我得到了这个:

知道为什么吗?

0 投票
1 回答
3180 浏览

multithreading - IdHTTP 获取响应线程

这段代码如何使用线程,这段代码让程序采取快速锁定线程会更好?

如何重复线程直到 i = ListBox1.Items.Count -1

0 投票
1 回答
823 浏览

xml - Delphi idhttp破字符

我正在研究 Delphi XE5 并使用 IDHTTP 从服务器获取 XML。获取 XML 工作正常,但有一些损坏的字符。字符是“•”(项目符号点)。其他都很好,但要点被打破了。

我创建了如下 IDHTTP:

然后得到如下的xml:

在 XML 项目符号点显示如下:

? 过敏反应/超敏反应:可能引起超敏反应,

XML 标头如下:

我应该检查什么?

更新:我添加了 XML 片段。它需要一个用于样式的 XSL 文件,但在这种情况下,我认为这不是问题。“?” 是破碎的性格。

看来我提供了错误信息。我附上了捕获的 xml 片段。第一个是使用rest客户端工具从浏览器获取的结果,最后一个是通过idhttp获取xml的结果。

使用 REST 客户端工具从浏览器获取 XML。

通过 idhttp 获取 XML

0 投票
1 回答
1460 浏览

delphi - 如何停止使用 THTTPRIO 时出现的身份验证对话框

我正在使用以下代码使用基本身份验证连接到 Web 服务:

如果用户名和密码正确,一切正常。但是,如果它们不正确,则会弹出一个 Windows 对话框,要求提供正确的凭据。我需要捕捉错误而不是对话框。

在此处输入图像描述

如何停止弹出对话框?我搜索并找到了几个结果(Link 1Link 2),但似乎都没有提供真正的解决方案。