示例网址:
https://api.binance.com/api/v1/time
使用 TIdDNSResolver 和 Cloudflare DNS,我可以获取主机 IP。直接请求的形式为:
https://205.251.219.20/api/v1/time
不起作用,因为我理解服务器期望在 URL 中看到 "api.binance.com"。(即使在浏览器中也无法工作)
使用 Synapce 并使用以下补丁替换请求的主机名为已解析的 IP,使其正常工作。
有没有使用Indy实现相同功能的方法?
使用 Synapce 并使用以下补丁替换请求的主机名为已解析的 IP,使其正常工作。
function THTTPSend.InternalDoConnect(needssl: Boolean): Boolean;
begin
Result := False;
FSock.CloseSocket;
FSock.Bind(FIPInterface, cAnyPort);
if FSock.LastError <> 0 then
Exit;
If ResolvedIP.IsEmpty
then FSock.Connect(FTargetHost, FTargetPort)
else FSock.Connect(ResolvedIP, FTargetPort); // !!
有没有使用Indy实现相同功能的方法?
SetStackClass(TCustomStack);
正是我需要的。 - Michael Gendelev