Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何使用AFNetworking3.0将plist数据同步到web服务器?_Ios_Objective C_Xcode8 - Fatal编程技术网

Ios 如何使用AFNetworking3.0将plist数据同步到web服务器?

Ios 如何使用AFNetworking3.0将plist数据同步到web服务器?,ios,objective-c,xcode8,Ios,Objective C,Xcode8,当网络连接不可用时,我使用plist在本地保存数据,当网络可用时,我希望将本地保存的数据同步到web服务器 我正在使用这个代码。但我不知道数据是否保存在服务器中 (IBAction)manualSync:(id)sender { NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration]; AFURLSessionManager *manager

当网络连接不可用时,我使用plist在本地保存数据,当网络可用时,我希望将本地保存的数据同步到web服务器

我正在使用这个代码。但我不知道数据是否保存在服务器中

(IBAction)manualSync:(id)sender {

   NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];
   AFURLSessionManager *manager = [[AFURLSessionManager alloc] initWithSessionConfiguration:configuration];

   NSURL *URL = [NSURL URLWithString:@"http://example_url"];
   NSURLRequest *request = [NSURLRequest requestWithURL:URL];

   NSURL *filePath = [NSURL fileURLWithPath:@"file://plist_name"];
   NSURLSessionUploadTask *uploadTask = [manager uploadTaskWithRequest:request fromFile:filePath progress:nil completionHandler:^(NSURLResponse *response, id responseObject, NSError *error) {
       if (error) {
           NSLog(@"Error: %@", error);
       } else {
           NSLog(@"Success: %@ %@", response, responseObject);
       }
    }];
    [uploadTask resume];
}

我将api分配给我要保存plist数据的URL,将plist分配给已经保存数据的文件路径。任何人都可以解决这个问题。

我认为您可以使用普通的API调用将存储的pList文件发送到服务器。因为当您读取plist文件时,您将在NSDictionary中保存数据,并将其发送到服务器存储

要将plist值发送到服务器,请执行以下操作:

  AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
NSString *strWebService = [NSString stringWithFormat:@"YOUR_BASE_URL"];

NSString* plistPath = [[NSBundle mainBundle] pathForResource:@"YOUR_PLIST_NAME" ofType:@"plist"];
NSDictionary *dicData = [NSDictionary dictionaryWithContentsOfFile:plistPath];



[manager POST:strWebService parameters:dicData constructingBodyWithBlock:^(id<AFMultipartFormData>  _Nonnull formData)
 {
 } progress:^(NSProgress * _Nonnull uploadProgress)
 {
 } success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject)
 {
     NSLog(@"%@",responseObject)
     ;
 } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
 }];

如果没有错误,则else{NSLog@Success:%@%@,response,responseObject;}将执行此代码。尝试在此处插入断点或检查日志。我没有收到任何错误,但我没有收到响应,因为断点直接跳到[uploadTask resume];如果不输入if条件,在获得响应的一段时间后,断点将被命中。在这种情况下,您可以选择完成处理程序。检查此链接以供参考,但此处我想将我的plist数据同步到web服务器,即项目中已存在的api。能否将plist文件发送给我?因此,我可以检查并让您知道。数据的保存和检索工作正常,但数据的同步不工作是的,当我要同步数据时,它的值为零。如果您在数组中发送任何数据,那么在api逻辑中,我们需要以数组的形式获取数据。否则服务器将无法获得正确的数据,你们在移动端是正确的,但和你们发送的方式一样,服务器需要以同样的方式进行编码来检索