gpt4 book ai didi

delphi - 如何在 Delphi 中下载一个非常简单的 HTTPS 页面?

转载 作者:行者123 更新时间:2023-12-05 04:48:31 24 4
gpt4 key购买 nike

我尝试了我在此处看到的代码,但它不适用于 HTTPS。我需要将此页面下载为字符串,并在其上添加一些换行符以将信息按顺序放入 TMemo。

怎么做?我尝试使用 Indy,但由于 SSL 而失败了。

我尝试了此页面的解决方案:How to download a web page into a variable?

如何下​​载本页https://api.rastrearpedidos.com.br/api/rastreio/v1?codigo=OP133496280BR那只是纯文本并放入字符串中?并在 TMemo 的行中像这样格式化:

"Objeto em trânsito - por favor aguarde"
"cidade":"SAO JOSE DOS CAMPOS"
"uf":"SP"
"dataHora":"18/06/2021 16:53"
"descricao":"Objeto postado","cidade":"SAO JOSE DOS CAMPOS","uf":"SP"

这是葡萄牙语,英语不是我的母语。谢谢你们能帮助我。我使用 Embarcadero Delphi 10.2 Tokyo。

最佳答案

当使用 Indy 时,假设您正在使用 Indy 的默认 TIdSSLIOHandlerSocketOpenSSL 组件来支持 SSL/TLS,那么请确保将 2 个 OpenSSL DLL、ssleay32.dlllibeay32.dll,与您的 EXE 在同一文件夹中。您可以从这里获取它们:

https://github.com/IndySockets/OpenSSL-Binaries

请注意,TIdSSLIOHandlerSocketOpenSSL 最多只支持 OpenSSL 1.0.2。如果您需要改用 OpenSSL 1.1.x(对于 TLS 1.3+ 等),则 use this SSLIOHandler反而。您将不得不从其他地方获取相关的 OpenSSL DLL,或者自己编译它们。

无论哪种方式,一旦您决定要使用哪个 SSLIOHandler,代码就相当简单:

var
HTTP: TIdHTTP;
SSL: TIdSSLIOHandlerSocketOpenSSL;
Response: string;
begin
HTTP := TIdHTTP.Create(nil);
try
// configure HTTP as needed (version, headers, etc)...

SSL := TIdSSLIOHandlerSocketOpenSSL.Create(HTTP);
// configure SSL as needed (TLS versions, certificates, etc)...
HTTP.IOHandler := SSL;

Response := HTTP.Get('https://api.rastrearpedidos.com.br/api/rastreio/v1?codigo=OP133496280BR');
finally
HTTP.Free;
end;

// use Response as needed...
end;

关于delphi - 如何在 Delphi 中下载一个非常简单的 HTTPS 页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68042321/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com