问题标签 [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.
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 来执行此操作?
谢谢!
android - 套接字错误 #113 没有路由到 Android 上的主机
在 Delphi XE6 FireMonkey 应用程序中,当我按下按钮时,我在 Android 上收到以下错误:
套接字错误 #113 没有到主机的路由
该TIdHTTP
组件是否需要另一个组件才能工作?
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?
sockets - TIdHTTP 返回“套接字错误#10060'#$D#$A'连接超时。”
我是德尔福的新手。为了与 WebService 通信,我添加了两个组件,TIdHTTP 和 TIdSSLIOHandlerSocketOpenSSL for SSL(https)。从服务器获取响应时,它不起作用并返回“Socket Error # 10060'#$D#$A'Connection timed out”。我应该怎么办?下面是我的代码。
提前致谢。
delphi - Delphi idhttp长URL参数自动拆分
我正在使用 indys idhttp 提交 URL(帖子)
它对我来说就像一个魅力。我正在尝试提交一个包含 300 个字符的参数的 URL(帖子),但会通过每 90 个字符添加一个“&”来自动拆分。所以服务器只接收 90 个字符而不是 300 个字符。
如果没有这种自动分隔,我如何提交一个包含 300 个字符参数的 URL?
delphi - Delphi:使用 TidHTTPServer 传输文件并监控单个请求的字节发送
使用TIdHTTPServer
(Indy 10.6),如何跟踪每个请求(关闭连接时)发送到客户端(用户浏览器)的字节数?
例如,在日志文件中:
delphi - idHttp Get + Delphi + 请求的 URL 被拒绝
我正在尝试运行此代码:
我得到了这个:
知道为什么吗?
multithreading - IdHTTP 获取响应线程
这段代码如何使用线程,这段代码让程序采取快速锁定线程会更好?
如何重复线程直到 i = ListBox1.Items.Count -1
xml - Delphi idhttp破字符
我正在研究 Delphi XE5 并使用 IDHTTP 从服务器获取 XML。获取 XML 工作正常,但有一些损坏的字符。字符是“•”(项目符号点)。其他都很好,但要点被打破了。
我创建了如下 IDHTTP:
然后得到如下的xml:
在 XML 项目符号点显示如下:
? 过敏反应/超敏反应:可能引起超敏反应,
XML 标头如下:
我应该检查什么?
更新:我添加了 XML 片段。它需要一个用于样式的 XSL 文件,但在这种情况下,我认为这不是问题。“?” 是破碎的性格。
看来我提供了错误信息。我附上了捕获的 xml 片段。第一个是使用rest客户端工具从浏览器获取的结果,最后一个是通过idhttp获取xml的结果。