上传使用AFNetworking POST文件(Uploading a file with POST

2019-10-17 09:28发布

所以我想一个XML文件上传到使用AFNetworking POST的服务器。
因此,使用示例代码从他们的网站我有这样的设置。 当它运行时,东西上传到服务器(或者至少它离开我的电脑)。 我可以监控上传,当上传完成后,服务器会发现它完成,进入加载该文件,但它会加载一个旧的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];

Answer 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
}];

这是要知道你的服务器返回什么简单的方法。 如果事情上传到你的服务器,你得到正确的文件仔细检查。 据我所知,您AFNetwork似乎确定。



文章来源: Uploading a file with POST using AFNetworking