问题标签 [indy-9]

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 回答
1109 浏览

delphi - TIdHTTPServer 接收 PostStream 时获取内容长度

我正在使用 Delphi 7 和 Indy 9 来实现一个简单的 HTTP 服务器。当我使用 POST 方法将文件上传到服务器时,我想知道 OnCommandGet 事件之前的内容长度,以便显示进度条。事件顺序如下:

  1. 在 OnPostStream 我创建一个文件流并挂钩 OnWork 事件。(这里我需要content-length来设置进度条)
  2. POST 正文被上传,OnWork 使用传输的字节触发。
  3. OnCommandGet 甚至触发,我得到了正确的内容长度的 TIdHTTPRequestInfo 对象,但此时为时已晚。

我修改了 Indy 源以获取传递给 OnPostStream 处理程序的 ASender.Data 字段中的 TIdHTTPRequestInfo 的副本。一切正常,但我不想碰印地。

有更清洁的解决方案吗?谢谢

0 投票
1 回答
490 浏览

delphi - 将 Delphi Codes 的 Indy 10 写入 C++ Builder 的 Indy 10

我是学习 C++ Builder 的新手。三天前,我安装了 Embarcadero®。C++Builder® 2010。这门语言对我来说非常有趣。

在 Delphi 中,我通常使用 Indy 9 和 10 的 TIdMappedPortTCP 编写一个简单的代理服务器。我通常使用它的 OnExecute 和 OnOutboundData 事件来修改通过代理的数据。

由于我是 C++ Builder 的新手,所以我不知道如何将我的 Delphi 代码转换为完全正确的 C++ Builder 代码。

我尝试了很多方法,包括阅读几本书,其中一本是Herbert Schildt的Borland C ++ Builder - The Complete Reference,以及增加知识。不幸的是,书中根本没有讨论与我的病情有关的非常重要的事情。另外,我在谷歌上找到了参考资料,但我没有找到。

所以,我冒昧地寻求你的帮助。我真的需要它。请帮忙!非常感谢你。

以下是我想写入 C++ Builder 的 Indy 10 的 Delphi 代码。

0 投票
0 回答
1808 浏览

sockets - delphi 7,没有远程服务器的 indy tcp 代理

是否可以在不连接到远程代理服务器的情况下实现 IdMappedPortTCP之类的东西?

我需要的是一种方法来编辑每个 HTTP 标头(例如更改每个请求的用户代理),用于从我的计算机发送的每个请求,而无需连接到远程服务器。b)如果可能的话,我还想在不需要像 proxifier 这样的第三方应用程序的情况下捕获 delphi 中的所有 http 流量。

到目前为止我尝试过的是:

a) IdMappedPortTCP 然后绑定到远程代理服务器,然后我在 IdMappedPortTCPExecute 方法中修改每个请求中的 AThread.NetData。

b) 使用 proxifier 捕获计算机中的所有 http 流量。

到目前为止我尝试的是使用映射IdMappedPortTCP到本地代理服务器(例如,,,,squid),delegate创建我自己的代理服务器(使用) - 所有这些都适用于 HTTP 连接,但需要安装根证书来修改 HTTPS 请求,即不受欢迎的。如果可以在无需安装根证书的情况下实现任何本地代理,那就太棒了!fiddlerccproxyindy 10

我也尝试过修改TCP REDIRECTOR CODE,但是在编程方面是新鲜的,我没有成功。我想我可以改变

这样我将从请求中提取主机和端口,然后cli.host为每个请求动态分配给该主机和端口。我不知道这有多可行。像,它会因为连接到太多的远程主机而导致计算机挂起吗?

更新:使用TIdMappedPortTCP,我AThread.Connection.Capture(myheaders,'');现在可以将我的主机分配给myheaders.Values['host'],如果AThread.Connection.ReadLn = 'CONNECT'我将端口设置为 443,否则我将其设置为 80。我在正确的轨道上吗?

我已将该代码放在 OnConnect 事件中,但它似乎不起作用。我做错了什么?

0 投票
1 回答
671 浏览

delphi - Delphi 将 SSL tcp 数据重定向到其他端口 no ssl

我正在使用 D5(这是事实)。我安装了 Indy9。我正在尝试接收IdMappedPortTCP端口 8041 (SSL) 上的数据并将数据重定向到Tserversocket端口 8040 上。所以我将支持 SSL over Tserversocket.

我使用以下代码:

如果我不使用 SSL,一切都很好。但是当我使用 SSL 时,请求永远不会到达加密的 8040 端口,我需要它不加密所以我可以处理它。

0 投票
1 回答
2998 浏览

delphi - 备忘录换行符

TIdMappedPortTCP我正在构建一个工具,它使用Indy 9发送除了我的浏览器请求之外的请求。

我想#$d#$A通过在备忘录中写入字符串(换行符)来使用它,%0D%0A 但它不能正常工作,正如您在图像中看到的那样。

我应该使用什么正确的代码来完成这项工作?

IdMappedPortTCP 请求和日志

0 投票
1 回答
497 浏览

delphi - Delphi - 为什么udp数据包不同?

我想了解为什么Wireshark程序中收到的数据包与我的 delphi 应用程序发送的数据包不同。谁能帮我?

这是我的代码:

这里是缓冲区数组的内容:

缓冲

这里的日志network sniffer Wireshark

线鲨

我也尝试过 TIDUDPClient ,但问题是一样的。

感谢所有帮助。

0 投票
1 回答
1307 浏览

delphi - Send emoji with indy delphi7

i want to send emoji with indy 9.00.10 on delphi 7. i use tnt VCL Controls . i found this url http://apps.timwhitlock.info/emoji/tables/unicode for unicode and bytes code. how to convert this codes to delphi Constants for Send with indy.

i use this delphi code for send message to telegram bot:

bytes sample for emojies:

sorry for bad english!!!

0 投票
1 回答
176 浏览

indy10 - 使用 Indy9 和 Indy10 的应用程序

那么,在 Delphi 7 中,如果我有一个使用 Indy9 的应用程序和另一个使用 Indy10 的应用程序(我在 VM 上的 Delphi 7),我可以为这两个应用程序使用 Delphi 7 和 Indy10 的新 VM 吗?我在想你不能在同一个 Delphi 7 版本上安装 Indy9 和 Indy10

谢谢大家

0 投票
1 回答
548 浏览

delphi - Indy SMTP 服务器和 Telnet

我一直在使用带有 Delphi 7 的演示来玩弄 Indy 9 中的 SMTP 客户端和服务器组件。一切正常。但是,当我 telnet 进入服务器时,演示只显示电子邮件主题和邮件正文,并没有显示From:和字段。To:

下面的代码显示AMsg缺少相关数据。

任何人都可以提出一个理由吗?首先,感谢雷米的回复。其次,我似乎还不能在这里发布图片,但这里有一个 server-telnet 会话图片的链接https://postimg.org/image/f0n9j0kcx/。telnet 会话显示服务器响应。也感谢您提醒我有关 Wireshark 的信息,以及使用 TIdLog 组件的建议。

0 投票
0 回答
221 浏览

delphi - Indy 9 + OneDrive 创建文件夹错误

我正在尝试在 OneDrive 上创建文件夹。此代码适用于 XE8 + Indy 10。但使用 Indy 9 和 Delphi 7 两次左右,我有:“EIdHTTPProtocolException 和消息“http/1.1 404 not found”。无论如何创建文件夹。

有没有办法避免 Indy 9 出现异常?由于规范,我不能在 Delphi 7 中使用 Indy 10。