我不想使用asihttp方法,所以有没有办法从服务器下载文件而不必使用get请求?如何使用post请求从服务器下载文件?
答案 0 :(得分: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后,您可以将文件保存到本地容器中,然后使用它执行许多操作。