我不想使用 asihttp 方法,所以有没有办法从服务器下载文件而不必使用 get 请求?如何使用发布请求从服务器下载文件?
问问题
221 次
1 回答
0
由于 OP 无论如何都想要答案,因此我将为此使用 PHP。
iOS客户端:
NSString *phpURLString = [NSString stringWithFormat:@"%@/getFile.php", serverAddress];
NSURL *phpURL = [NSURL URLWithString:phpURLString];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:phpURL];
NSString *post = [NSString stringWithFormat:@"filePath=%@", filePath];
NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding];
NSString *postLength = [NSString stringWithFormat:@"%d", [post length]];
[request setHTTPMethod:@"POST"];
[request setValue:postLength forHTTPHeaderField:@"Content-Length"];
[request setHTTPBody:postData];
NSData *responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil]:
对于 PHP 端:
<?php
$filePath = htmlspecialchars($_POST['filePath']);
$fileData = file_get_contents($filePath);
echo $fileData;
?>
这是非常基本的。同样对于 iOS 端,您可能希望将整个请求包装在一个在后台异步运行的代码块中。您可以为此使用 GCD。在 iOS 中将文件作为 responseData 后,您可以将文件保存到本地容器,然后用它做很多事情。
于 2012-08-02T03:52:32.730 回答