Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Delphi Rio中的TRESTClient能否在Windows XP中工作?_Delphi_Windows Xp_Pascal_Delphi 10.3 Rio - Fatal编程技术网

Delphi Rio中的TRESTClient能否在Windows XP中工作?

Delphi Rio中的TRESTClient能否在Windows XP中工作?,delphi,windows-xp,pascal,delphi-10.3-rio,Delphi,Windows Xp,Pascal,Delphi 10.3 Rio,使用TRESTClient组件,我添加了我的应用程序CW_EPG在Windows 7及更高版本下访问SchedulesDirect.org JSON数据库的功能,但在Windows XP中运行该应用程序在尝试访问站点时只会产生以下错误:错误:REST请求失败:发送数据时出错:(12007)无法解析服务器名称或地址。我已尝试启用/禁用对象检查器中列出的各种控件,但未能成功更改该错误消息。我是否遗漏了什么,或者这个Rio子系统与XP不兼容 FWIW,这是相关的代码段(基本URL在RESTClient

使用TRESTClient组件,我添加了我的应用程序CW_EPG在Windows 7及更高版本下访问SchedulesDirect.org JSON数据库的功能,但在Windows XP中运行该应用程序在尝试访问站点时只会产生以下错误:
错误:REST请求失败:发送数据时出错:(12007)无法解析服务器名称或地址
。我已尝试启用/禁用对象检查器中列出的各种控件,但未能成功更改该错误消息。我是否遗漏了什么,或者这个Rio子系统与XP不兼容

FWIW,这是相关的代码段(基本URL在RESTClient1的Object Inspector中设置为
https://json.schedulesdirect.org/20141201
):


TRESTClient似乎可以在Windows XP中工作,但只有在应用黑客“欺骗”XP POSReady安装并因此启用TLS 1.1和1.2之后。例如,参见本页:
https://msfn.org/board/topic/178092-enable-tls-11-and-12-in-windows-xp-correctly/


顺便说一句,Embarcadero的远程调试器@Remy Lebeau也无法在我的XP虚拟机上运行,我认为这可能是因为它是一个精简的“nLite”XP安装。然而,我现在已经构建了一个完整的XP-SP3(POSReady)VM和远程调试器(paserver)在
KERNEL32.dll

中查找不存在的入口点时,安装也失败。您是否尝试在运行时调试
TRESTClient
的源代码,以查看它是如何解析REST URL和解析REST服务器名称的?@RemyLebeau,您是否建议它真的应该在XP上工作?我还尝试了在Win10和XP上使用该URL的Embarcadero REST调试器。它的行为类似于我的应用程序:在10上工作,在XP上失败。我还没有爬上Rio调试器的学习曲线,用它来调试运行在WinXP虚拟机上的应用程序,但我猜你是说这就是接下来应该做的,对吧?当然,你检查了XP虚拟机上的网络连接?你可以ping
json.schedulesdirect.org
成功吗?@Olivier,是的,事实上,这个问题是由一个测试人员首先向我报告的,他使用一个物理XP系统,定期使用我的应用程序的旧版本访问该站点。但是你的问题让我看了看没有互联网连接时的错误信息,答案是“相同”。显然,故障发生在通话的早期。除非有人告诉我这是没有希望的,否则我将开始攀登雷米建议的学习曲线,但我对找到真正的解决办法并不乐观(另一种可能是SSL存在问题(尽管它会给出另一个错误消息)。您可以在XP下浏览到IE吗?如果您不想麻烦使用这些修补程序,您可以切换到基于OpenSSL的网络组件(例如Indy)@Olivier,但我不得不放弃TRESTClient中的JSON功能,它可以神奇地将内容解析到客户端数据集。。。。
  RESTRequest1.ClearBody;
  RESTRequest1.AddBody('{"username":"' + userID
    + '", "password":"' + THashSHA1.GetHashString(userPass) + 
    '"}',ctTEXT_PLAIN);
  RESTRequest1.Method := rmPOST;
  RESTRequest1.Resource := 'token';
  RESTResponse1.RootElement := '';
  try
    RESTRequest1.Execute;
  except on E:Exception do
    begin
      ShowMessage('Error: ' + E.Message);
      exit;
    end;
  end;