0

我不想使用 asihttp 方法,所以有没有办法从服务器下载文件而不必使用 get 请求?如何使用发布请求从服务器下载文件?

4

1 回答 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 回答