gpt4 book ai didi

delphi - 如何在 iOS 模拟器 Delphi Seattle 上进行 HTTPS 调用

转载 作者:行者123 更新时间:2023-12-03 15:47:49 25 4
gpt4 key购买 nike

OpenSSL 不适用于 Delphi DX 中的 iOS 模拟器使用信息: http://blog.marcocantu.com/blog/using_ssl_delphi_ios.html http://docwiki.embarcadero.com/RADStudio/Seattle/en/OpenSSL https://plus.google.com/100777187605111792758/posts/SPnHdXvTTNu

我可以让它在设备上运行,但不能在 iOS 模拟器上运行。当我使用 TWebbrowser.navigate 时,相同的 URL 可以工作,但当然不能使用 INDY。请参阅下文,并可能提供有关如何在 iOS 模拟器上进行 HTTPS 调用的建议!这之前在 Rad Studio 的早期版本(XE4、XE5)中有效,但如果我没记错的话,自 XE7 以来就没有了。

我的 usr/lib 文件夹中有这些文件:

libcrypto.0.9.8.dylib
libssl.0.9.8.dylib

这是我的用途

uses
IdSSLOpenSSL,
{$IF Defined(IOS) and Defined(CPUARM)}
IdSSLOpenSSLHeaders_Static,
{$ELSE}
IdSSLOpenSSLHeaders,
{$ENDIF}
...

这是我的主表单的 onCreate

procedure TmLoginForm.FormCreate(Sender: TObject);
var
t:string;
begin
IdOpenSSLSetLibPath('/usr/lib/');
...

这是我使用的函数的一部分,其中最后一行抛出异常

function ParseGroups(OnlyUserCreated:boolean):integer;
var
IdHTTP :TIdHTTP;
HTML :String;
JSON_Groups :TJSONObject;
Group :uGroup;
begin
result:=0;
HTML:='';
IdHTTP:=TIdHTTP.Create(nil);
IdHTTP.HandleRedirects:=false;
try
HTML:=IdHTTP.Get(URL_Host+ACCESSTOKEN);

错误是:“无法加载 SSL 库”

ShowMessage(IdSSLOpenSSLHeaders.WhichFailedToLoad); 显示空白消息

更新:

添加

 IdSSLOpenSSLHeaders.Load;

设置路径后,现在会导致whichFailedToLoad显示:“无法加载/usr/lib/libcrypto。”

最佳答案

使用System.Net.HttpClient.THTTPClient而不是 Indy 组件。

var
http : THTTPClient;
html : string;

http := THTTPClient.Create;
try
html := http.Get( url ).ContentAsString();
...
finally
http.Free;
end;

它是操作系统中 http 函数的包装器。如果操作系统支持 https,那么这个类也可以。

关于delphi - 如何在 iOS 模拟器 Delphi Seattle 上进行 HTTPS 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33614573/

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