我如何正确设置 AFNetworking Get 请求?
How I properly setup an AFNetworking Get Request?
我正在尝试从我的服务器检索一行代码并在我的 NSUserDefaults
中实现它。
现在,这就是我的 appdelegate.m
的样子:
NSDictionary* defaults = @{@"server_addr": @"http://156.92.15.802"};
[[NSUserDefaults standardUserDefaults] registerDefaults:defaults];
http://156.92.15.802
url 是我需要从服务器获取的部分。
如果我的服务器上有一个名为 Example.txt 的文件,并且该文件中只有一行类似于 http://156.92.15.802
,我如何使用 AFNetworking 检查我服务器上的文件然后添加它到 NSUserDefaults
?
我正在使用相同的 POST 到服务器。但是您确定要使用 AFNetworking 吗,我认为 NSURLConnection 也可以。
AFHTTPSessionManager *manager = [[AFHTTPSessionManager alloc] initWithBaseURL:[NSURL URLWithString:stringURL]];
manager.responseSerializer = [AFJSONResponseSerializer serializer];
manager.requestSerializer = [AFJSONRequestSerializer serializer];
[manager POST:stringURL parameters:parameters constructingBodyWithBlock:^(id<AFMultipartFormData> formData)
{
//do not put image inside parameters dictionary as I did, but append it!
}
success:^(NSURLSessionDataTask *task, id responseObject)
{
//here is place for code executed in success case
}
failure:^(NSURLSessionDataTask *task, NSError *error)
{
//here is place for code executed in error case
}];
步骤如下:
- 下载
Example.txt
文件
- 将下载的
txt
文件读入NSString*
- 将此
NSString*
保存到您的 NSUserDefaults
- (void)requestTextFile {
NSString *urlString = @"http://156.92.15.802/Example.txt";
NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];
AFURLSessionManager *manager = [[AFURLSessionManager alloc] initWithSessionConfiguration:configuration];
NSURL *URL = [NSURL URLWithString:urlString];
NSURLRequest *request = [NSURLRequest requestWithURL:URL];
NSURLSessionDownloadTask *downloadTask = [manager downloadTaskWithRequest:request progress:nil destination:^NSURL *(NSURL *targetPath, NSURLResponse *response) {
NSURL *documentsDirectoryURL = [[NSFileManager defaultManager] URLForDirectory:NSDocumentDirectory inDomain:NSUserDomainMask appropriateForURL:nil create:NO error:nil];
return [documentsDirectoryURL URLByAppendingPathComponent:[response suggestedFilename]];
} completionHandler:^(NSURLResponse *response, NSURL *filePath, NSError *error) {
NSString* content = [NSString stringWithContentsOfFile:filePath.relativePath encoding:NSUTF8StringEncoding error:NULL];
NSLog(@"content = %@", content);
//save this content to your NSUserDefaults
//...
}];
[downloadTask resume];
}
我正在尝试从我的服务器检索一行代码并在我的 NSUserDefaults
中实现它。
现在,这就是我的 appdelegate.m
的样子:
NSDictionary* defaults = @{@"server_addr": @"http://156.92.15.802"};
[[NSUserDefaults standardUserDefaults] registerDefaults:defaults];
http://156.92.15.802
url 是我需要从服务器获取的部分。
如果我的服务器上有一个名为 Example.txt 的文件,并且该文件中只有一行类似于 http://156.92.15.802
,我如何使用 AFNetworking 检查我服务器上的文件然后添加它到 NSUserDefaults
?
我正在使用相同的 POST 到服务器。但是您确定要使用 AFNetworking 吗,我认为 NSURLConnection 也可以。
AFHTTPSessionManager *manager = [[AFHTTPSessionManager alloc] initWithBaseURL:[NSURL URLWithString:stringURL]];
manager.responseSerializer = [AFJSONResponseSerializer serializer];
manager.requestSerializer = [AFJSONRequestSerializer serializer];
[manager POST:stringURL parameters:parameters constructingBodyWithBlock:^(id<AFMultipartFormData> formData)
{
//do not put image inside parameters dictionary as I did, but append it!
}
success:^(NSURLSessionDataTask *task, id responseObject)
{
//here is place for code executed in success case
}
failure:^(NSURLSessionDataTask *task, NSError *error)
{
//here is place for code executed in error case
}];
步骤如下:
- 下载
Example.txt
文件 - 将下载的
txt
文件读入NSString*
- 将此
NSString*
保存到您的NSUserDefaults
- (void)requestTextFile {
NSString *urlString = @"http://156.92.15.802/Example.txt";
NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];
AFURLSessionManager *manager = [[AFURLSessionManager alloc] initWithSessionConfiguration:configuration];
NSURL *URL = [NSURL URLWithString:urlString];
NSURLRequest *request = [NSURLRequest requestWithURL:URL];
NSURLSessionDownloadTask *downloadTask = [manager downloadTaskWithRequest:request progress:nil destination:^NSURL *(NSURL *targetPath, NSURLResponse *response) {
NSURL *documentsDirectoryURL = [[NSFileManager defaultManager] URLForDirectory:NSDocumentDirectory inDomain:NSUserDomainMask appropriateForURL:nil create:NO error:nil];
return [documentsDirectoryURL URLByAppendingPathComponent:[response suggestedFilename]];
} completionHandler:^(NSURLResponse *response, NSURL *filePath, NSError *error) {
NSString* content = [NSString stringWithContentsOfFile:filePath.relativePath encoding:NSUTF8StringEncoding error:NULL];
NSLog(@"content = %@", content);
//save this content to your NSUserDefaults
//...
}];
[downloadTask resume];
}