1

そこで、AFNetworkingを使用してPOSTを使用してXMLファイルをサーバーにアップロードしようとしています。
そこで、彼らのサイトのサンプルコードを使用して、これを設定しました。それが実行されると、何かがサーバーにアップロードされます(または少なくともそれは私のコンピューターを離れます)。アップロードを監視できます。アップロードが完了すると、サーバーはアップロードが完了したことを認識してファイルをロードしますが、古いXMLをロードします。したがって、サーバーに正しく接続されていますが、ファイルのアップロードが正しく機能しない理由はわかりません。また、ファイルを送信したいだけです。サーバーにはヘッダーやパラメーターなどは必要ありません
。データを正しく保存したかどうか疑問に思います。または、サーバーを適切に送信していない場合はどうなりますか?どんな提案も役に立ちます

NSData *iTunesXMLData = [NSData dataWithContentsOfFile:filePath];

AFHTTPClient *httpClient = [[AFHTTPClient alloc] initWithBaseURL:url];

  /* NSMutableURLRequest *request =[httpClientmultipartFormRequestWithMethod:@"POST"     
path:@"/upload.php?id=5" parameters:nil constructingBodyWithBlock: ^(id <AFMultipartFormData>formData) {
    [formData appendPartWithFileData:iTunesXMLData name:@"iTunes Music Library" fileName:@"iTunes Music Library.xml" mimeType:@"application/xml"];
}];*/

//I tried this way also, both did the same thing

NSMutableURLRequest *request = [httpClient multipartFormRequestWithMethod:@"POST" path:@"/upload.php?id=5" parameters:nil constructingBodyWithBlock: ^(id <AFMultipartFormData>formData) {
    [formData appendPartWithFormData:iTunesXMLData name:@"iTunes Music Library"];
}];`

 AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request];`

NSLog(@"Operation: %@", operation);
[operation setUploadProgressBlock:^(NSUInteger bytesWritten, long long totalBytesWritten, long long totalBytesExpectedToWrite) {
    NSLog(@"Sent %lld of %lld bytes", totalBytesWritten, totalBytesExpectedToWrite);
}];
[operation start];
4

1 に答える 1

1

操作の成功/失敗をキャッチしようとしましたか?後でこれを試してくださいsetUploadProgressBlock

[operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
    // Operation ended successfully
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
    // Something happened! 
    NSLog(@"ERROR: %@, %@", operation, error);
    // Here you can catch operation.responseString to see the response of your server
}];

これは、サーバーが何を返したかを知る簡単な方法です。サーバーに何かがアップロードされた場合は、正しいファイルを取得していることを再確認してください。AFAIK、AFNetworkは問題ないようです。

于 2012-11-26T11:54:18.230 に答える