从网址请求数据

时间:2011-08-10 02:36:18

标签: iphone objective-c xcode asihttprequest asiformdatarequest

我正在尝试从服务器检索图像和视频。 m使用以下代码..

- (void)sendBodyRequestWithTopLeftX:(NSNumber *)tx 
                       topLeftY:(NSNumber *)ty 
                   bottomRightX:(NSNumber *)bx
                   bottomRightY:(NSNumber *)by 
                       dateFrom:(NSDate *)dateFrom 
                         dateTo:(NSDate *)dateTo{

NSURL *url = [NSURL URLWithString:@"http://server/searchMedia?topLeftX=<float>&topLeftY=<float>&bottomRightX=<float>&bottomRightY=<float>&dateFrom=<date>&dateTo=<date>"];
_request = [ASIFormDataRequest requestWithURL:url];
[self sendRequest];
[_request setRequestMethod:@"POST"];
[_request setPostValue:tx forKey:@"topLeftX"];
[_request setPostValue:ty forKey:@"topLeftY"];
[_request setPostValue:bx forKey:@"bottomRightX"];
[_request setPostValue:by forKey:@"bottomRightY"];
[_request setPostValue:dateFrom forKey:@"dateFrom"];
[_request setPostValue:dateTo forKey:@"dateTo"];
[_request setDidFinishSelector:@selector(requestFinished:)];
[_request setDidFailSelector:@selector(requestFailed)];
[_request startAsynchronous];

但我在requestFinished function内没有得到任何回复。尝试过很多东西,但仍然没有。任何人都可以帮助我。 还有一件事,服务器端的值是float,但是当我将NSNumber更改为浮点数时,它会给我一个不兼容类型的错误。任何线索..谢谢..

1 个答案:

答案 0 :(得分:1)

看起来你没有设置请求的委托;它不会知道在完成/失败时通知什么对象!在致电startSynchronous之前添加此内容:

// Replace self with the object that implements requestFailed/Finished:.
[_request setDelegate:self];

另外,如果您正在使用POST,为什么使用查询字符串?这是不必要的。

如果您对ASIHTTPRequest库有任何疑问,建议您仔细阅读documentation。至于您的NSNumber问题,我们需要更多信息(理想情况下是代码)。