ASIHttpRequest POST图片

时间:2011-10-09 13:21:44

标签: iphone objective-c xcode post asihttprequest

我正在使用ASIHttpRequest来POST用户并传递给执行php代码的url。此代码返回一个url字符串,但现在,还需要图像才能在tableview之后显示它。如何使用ASIHttpRequest在iphone上保存该URL的图像?

  - (void)getData
    {
        activityIndicator.hidden = NO;
        [activityIndicator startAnimating];

        NSURL *url = [NSURL URLWithString:@"http://test.com/iphone.php"];
        ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];
        NSLog(@"URL = %@",url);

        [request setValidatesSecureCertificate:NO];
        [request setRequestMethod:@"POST"];
        [request setPostValue:@"user1" forKey:@"user"];
        [request setPostValue:@"admin" forKey:@"pass"];
        [request setDelegate:self];
        [request startAsynchronous];  

        NSString *response = [NSString stringWithContentsOfFile:
                              [request downloadDestinationPath] encoding:[request responseEncoding] error:nil];
 }    


- (void)requestFinished:(ASIHTTPRequest *)request {
    NSLog(@"Response %d ==> %@", request.responseStatusCode, [request responseString]);
    [activityIndicator stopAnimating];
    activityIndicator.hidden = YES;
}

3 个答案:

答案 0 :(得分:0)

如果要保存图像,则必须直接向图像发送下载请求。此时您将获得一个HTTP页面作为响应(保存此信息)。

基本上是这样的:

ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:<URL WITH YOUR IMAGE>];
[request setDownloadDestinationPath:@"/image.jpg"];

答案 1 :(得分:0)

或者,您的响应可能包含一个编码图像(例如,64位编码),您可以从响应中解析。

答案 2 :(得分:0)

如果您想将图像存储到用户手机中,那么您可以使用HJcache API来存储客户端存储图像和使用的图像。