我正在使用 Amazon SimpleDB 进行选择查询,并且我正在尝试使用 AWS AmazonServiceRequestDelegate
,这里是委托方法(我在 .h 中符合要求):
- (void)request:(AmazonServiceRequest *)request didFailWithError:(NSError *)error {
NSLog(@"%@", error.localizedDescription);
}
- (void)request:(AmazonServiceRequest *)request didReceiveData:(NSData *)data {
NSLog(@"recieving data");
}
- (void)request:(AmazonServiceRequest *)request didReceiveResponse:(NSURLResponse *)response {
NSLog(@"response recieved");
}
- (void)request:(AmazonServiceRequest *)request didCompleteWithResponse:(AmazonServiceResponse *)response {
NSLog(@"Completed");
}
它们都被调用 except didCompleteWithResponse:
,当整个操作完成并响应时应该调用的方法。didFailWithError:
也没有被调用,但我看不出我的操作有任何失败的原因。
这是我创建选择查询的代码:
SimpleDBSelectRequest *sReq = [[SimpleDBSelectRequest alloc] initWithSelectExpression:SELECT_STRING andConsistentRead: YES];
sReq.delegate = self;
sReq.requestTag = FIND_FRIENDS_SDB;
[sdbClient select: sReq];
WhereSELECT_STRING
和FIND_FRIENDS_SDB
是预定义的并且对上下文字符串有效。
我的问题是什么?谢谢!
更新:
得到委派工作。收到与我的 SimpleDB SELECT 查询相关的错误,显然我的 SELECT 表达式的语法无效。我收到两个错误,因为我正在执行两个查询,以下是每个查询的 SELECT 表达式:
select * from trvlogue-app where Type = 'account' AND itemName() = 'me%40rohankapur.com-account'
那就是查看“Type”属性和“itemName()”并检查它们是否等于域中的某些内容。
select * from trvlogue-app where Email in('kate-bell%40mac.com','www.creative-consulting-inc.com','d-higgins%40mac.com','John-Appleseed%40mac.com ','anna-haro%40mac.com','hank-zakroff%40mac.com')
那就是检查这些字符串是否存在于域中的电子邮件属性中。
笔记:
修复了它,显然在使用 SELECT 表达式时,域名不能有破折号。或者破折号似乎以某种方式破坏了请求