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 に答える