示例网址: https: //api.binance.com/api/v1/time
使用 TIdDNSResolver 和 cloudflare dns 我可以获得主机 IP。直接请求的形式
https://205.251.219.20/api/v1/time
不起作用,因为据我了解,服务器期望在网址中看到“api.binance.com”。(即使在浏览器中也不起作用)
使用 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); // !!
Run Code Online (Sandbox Code Playgroud)
有没有办法使用 Indy 来做同样的事情?