2

我想知道如何从完成的 ASIHTTPRequest 中检索 post 值。

当我执行请求时,我会这样做:

[request setPostValue:uniqueID forKey:@"bookUniqueId"];
NSFileManager *fileManager = [[NSFileManager alloc]init];
if (![fileManager fileExistsAtPath:tempDir]) {
    [fileManager createDirectoryAtPath:tempDir withIntermediateDirectories:YES attributes:nil error:nil];
}
[fileManager release];

tempDir = [[tempDir stringByAppendingPathComponent:uniqueID]stringByAppendingPathExtension:@"zip"];
[request setDownloadDestinationPath:tempDir];
[request setDelegate:self];
[request startAsynchronous];

因为我想下载 zip 文件,命名为我的书的 ID。

- (void)requestFinished:(ASIHTTPRequest *)request方法中,我需要该 ID 来解压缩文件。我无法将 ID 保存在 ivar 中,因为我想支持多个异步下载。

我怎样才能做到这一点?有没有类似于不存在的方法的东西[request postValueForKey: key]

4

2 回答 2

7

每当你创建你的ASIFormDataRequest只是设置它的用户信息并像这样得到它。

要设置用户信息,请使用此选项。

[request setUserInfo:[NSDictionary dictionaryWithObject:@"YOUR_VALUE" forKey:@"YOUR_KEY"]];

要获取用户信息,请使用此功能。

-(void)requestFinished:(ASIHTTPRequest *)request
{
     NSDictionary *dict = [request userInfo];
     NSString *str = [dict objectForKey:@"YOUR_KEY"];
}
于 2012-06-22T09:42:21.467 回答
4

您可以使用userInfo的属性ASIHTTPRequest

像下面这样

request.userInfo = [[NSMutableDictionary alloc] init];
[request.userInfo setValue:yourID forKey:@"your id"];    

然后在requestFinished

- (void)requestFinished:(ASIHTTPRequest *)request
    yourid = [request userInfo] valueForKey:@"your id"];
于 2012-06-22T09:43:01.990 回答