我在 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 天,所以仍然找到了我的脚。