0

我在 Delphi 中编写了一个 DataSnap 服务器,现在正在用 Objective-C 编写一个 iPhone 客户端应用程序来使用它的数据。我只是通过调用一个简单的方法来返回一个字符串开始简单 - 见代码:

NSString *sReverseStr;
DSRESTConnection *connDSREST;
TServerMethods *dsClient;

connDSREST = [[DSRESTConnection alloc] initWithDelegate:self];
[connDSREST setHost:@"192.168.0.19"];
[connDSREST setPort:80];
[connDSREST setProtocol:@"http"];
[connDSREST setUserName:@"user"];
[connDSREST setPassword:@"pass"];

dsClient = [[TServerMethods alloc] initWithConnection:connDSREST];
sReverseStr = [dsClient ReverseString:@"Goodbye"];

“ReverseString”方法应该返回文本“eybdooG”,但它只是返回空白,而且我在 DataSnap 服务器端看不到任何连接活动——就好像根本没有调用该方法一样。有趣的是,如果我没有设置 DSRESTConnection 的 UserName 和 Password 属性,那么它会尝试连接到服务器并且我可以看到活动,但是连接失败并显示“401:未经授权”,因为我的 DataSnap 服务器需要用户凭据。

是否有人使用 Objective-C 成功连接到 DataSnap 服务器,无论是否使用用户凭据?

抱歉,如果我错过了一些明显的东西,只使用 Xcode 2 天,所以仍然找到了我的脚。

4

1 回答 1

0

只是为了更新这个 - Embarcadero 已确认这是 iOS DataSnap 框架中的一个错误并已修复它。该错误位于 DSRESTConnection.m 中,并且在其 sourceforge 存储库中有一个新的固定版本:

http://radstudiodemos.svn.sourceforge.net/viewvc/radstudiodemos/branches/RadStudio_XE2/Delphi/DataSnap/connectors/

乔纳森

于 2012-02-25T08:48:17.660 回答