Ios 如何使用AFNetworking3.0将plist数据同步到web服务器?
当网络连接不可用时,我使用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
(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逻辑中,我们需要以数组的形式获取数据。否则服务器将无法获得正确的数据,你们在移动端是正确的,但和你们发送的方式一样,服务器需要以同样的方式进行编码来检索