标签: afnetworking-2

AFNetworking 2.0是否支持iOS 6.0?

AFNetworking 2.0上周宣布.但我发现AFNetworking 2.0有不同的要求.

README.md告诉它需要iOS 7.0及更高版本,而AFNetworking 2.0迁移指南告诉它需要iOS 6.0及更高版本.

剂量AFNetworking 2.0支持iOS 6.0?

ios afnetworking afnetworking-2

12
推荐指数
1
解决办法
6517
查看次数

AFNetworking 2.0错误:具有"保留(或强)"属性的属性必须是对象类型

将我的项目更新为AFNetworking,Xcode显示此错误:

@property (nonatomic, strong) dispatch_queue_t completionQueue;
Run Code Online (Sandbox Code Playgroud)

具有' retain or strong'属性的属性必须是对象类型.

我无法理解为什么官方示例没有错误警告?

iphone objective-c ios afnetworking afnetworking-2

12
推荐指数
1
解决办法
8738
查看次数

如何在AFNetworking 2.0中使用Progress参数

我正在尝试将AFNetworking 2.0与NSURLSession一起使用.我正在使用这种方法

- (NSURLSessionUploadTask *)uploadTaskWithRequest:(NSURLRequest *)request
                                         fromFile:(NSURL *)fileURL
                                         progress:(NSProgress * __autoreleasing *)progress
                                completionHandler:(void (^)(NSURLResponse *response, id responseObject, NSError *error))completionHandler;
Run Code Online (Sandbox Code Playgroud)

我该如何使用progress参数.该方法是一种非阻塞方法.因此,我将不得不听' progress'来获取更新.但参数不会占用属性.只接受局部变量(NSProgress*__autoreleasing*).我无法将KVO添加到本地var.

我不太确定如何使用.

objective-c ios afnetworking afnetworking-2

11
推荐指数
1
解决办法
5172
查看次数

使用AFHTTPSessionManager作为单例的正确方法?

我正在尝试使用AFNetworking 2.0来执行我的网络请求,但我遇到了一些奇怪的行为.我按照文档中的建议进行了子类化AFHTTPSessionManager,并提供了一个类方法,该方法返回一个单例对象,该对象具有基本URL设置以及设置我的auth标头.

+ (id)sharedInstance {
  static dispatch_once_t once;
  static MyHTTPClient *sharedInstance;

  dispatch_once(&once, ^{
    sharedInstance = [[self alloc] initWithBaseURL: NSURLURLWithString:kPlatformAPIBaseURL]];
  });

  //Uncommenting this line makes the error go away
  //sharedInstance.responseSerializer = [AFJSONResponseSerializer serializer];

  //get latest session id everytime someone gets an instance of the client
  sharedInstance.sessionId = [MySessionManager getSessionId];

  return sharedInstance;
}

- (instancetype)initWithBaseURL:(NSURL *)url {
  self = [super initWithBaseURL:url];

  if(self) {
    self.sessionId = [FSSessionManager getSessionId];

    self.serializer = [AFHTTPRequestSerializer serializer];
    [_serializer setValue:_sessionId forHTTPHeaderField:kAuthorizationHeader];
    [_serializer setValue:@"application/json" forHTTPHeaderField:kAcceptHeader];

    self.requestSerializer …
Run Code Online (Sandbox Code Playgroud)

afnetworking-2

11
推荐指数
1
解决办法
9537
查看次数

AFHTTPSessionManager将主体添加到POST

我也需要向我的服务器发帖子请求.

使用AFHTTPRequestOperation非常简单,只需使用:

[request setHTTPBody: [requestBody dataUsingEncoding:NSUTF8StringEncoding]];
Run Code Online (Sandbox Code Playgroud)

但是,我找不到任何使用AFHTTPSessionManager使用相同方法的示例.

使用方法:

[self POST:@"extraLink" parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {

} success:^(NSURLSessionDataTask *task, id responseObject) {

} failure:^(NSURLSessionDataTask *task, NSError *error) {

}];
Run Code Online (Sandbox Code Playgroud)

我如何将主体添加到"AFMultipartFormData"?

谢谢你的推荐

ios ios7 afnetworking-2

11
推荐指数
2
解决办法
2万
查看次数

使用AFNetworking 2.0上传图像

我不明白为什么这么难.在线的所有教程和文章似乎都在谈论1.0 api,这是非常没用的.

我尝试了几种不同的方法,得到了不同的结果.我究竟做错了什么?

  1. 上传任务 - 这似乎不是使用多部分形式,wtf?

    NSMutableURLRequest *request = [self.manager.requestSerializer multipartFormRequestWithMethod:@"POST"
                                                                                      URLString:[[NSURL URLWithString:url relativeToURL:[NSURL URLWithString:ApiBaseUrl]] absoluteString]
                                                                                     parameters:@{}
                                                                      constructingBodyWithBlock:nil];
    
    NSProgress *progress;
    NSURLSessionUploadTask *task = [self.manager uploadTaskWithRequest:request
                                                            fromData:data
                                                            progress:&progress
                                                   completionHandler:^(NSURLResponse *response, id responseObject, NSError *error) {
                                                     if (error) {
                                                       NSLog(@"[error description] = %@", [error description]);
                                                     } else {
                                                       NSLog(@"success!");
                                                     }
                                                   }];
    
    [task resume];
    
    Run Code Online (Sandbox Code Playgroud)
  2. 发布一个块 - 这似乎没有附加任何东西

    [self.manager POST:url
               parameters:@{}
    constructingBodyWithBlock:^(id <AFMultipartFormData> formData) {
        [formData appendPartWithFileData:data
                                    name:@"post[picture]"
                                fileName:@"picture.jpg"
                                mimeType:@"image/jpeg"];
    }
                  success:^(NSURLSessionDataTask *task, id response) {
                    NSLog(@"Success");
                  }
                  failure:^(NSURLSessionDataTask *task, NSError *error) {
                    NSLog(@"Error: …
    Run Code Online (Sandbox Code Playgroud)

objective-c ios afnetworking-2

10
推荐指数
2
解决办法
2万
查看次数

AFNetworking 2.0请求w.自定义标题

我试图避免在这里问这样一个新问题,但我是一个学习IOS的Android开发者,我无法弄清楚如何使用AFNetworking 2.0为我的帖子请求添加一个简单的标题.下面是我的代码到目前为止,如果我想提出一个不需要标题的请求,有效.有人可以通过添加到我的代码段或提供替代方案来显示这个吗?我遇到了这个问题:http ://www.raywenderlich.com/30445,它显示了如何在"A RESTful Class"标题下添加标题,但是它用于afnetworking 1.0,现在我已经折旧了.

    AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
    NSDictionary *parameters = @{@"uid": @"1"};
    AFHT
    [manager POST:@"http://myface.com/api/profile/format/json" parameters:parameters  success:^(AFHTTPRequestOperation *operation, id responseObject) {
        //NSLog(@"JSON: %@", responseObject);

        self.feedArray = [responseObject objectForKey:@"feed"];

        [self.tableView reloadData];

    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
        NSLog(@"Error: %@", error);
    } ];
}
Run Code Online (Sandbox Code Playgroud)

header http-headers ios afnetworking afnetworking-2

10
推荐指数
1
解决办法
1万
查看次数

使用AFNetworking 2.0进行分组或批量请求

我正在尝试找出使用AFNetworking 2.0对大量GET请求进行分组或批处理的最佳做法.所有GET请求都需要在代码可以继续之前完成,但它们不必一个接一个地运行.现在对于单个请求,我正在使用AFHTTPRequestOperationManager(另见此处:子类AFHTTPRequestOperationManager?).

这里描述了一种可能性,使用dispatch_group:如何使用AFNetworking 2批量请求?,但那是为了AFHTTPSessionManager,这只是iOS7.我的应用程序仍然针对iOS6,所以我需要使用AFHTTPRequestOperationManager.

是否正在使用dispatch_group?或者AFNetworking内置了一些我忽略并可以用于此的内容?

编辑:仍然不知道正确的方法是什么...例如,我如何使用组AFHTTPRequestOperation

我尝试了以下内容,但在所有响应进入之前,最终会首先显示最终的NSLog("完成搜索"):

dispatch_queue_t dispatch_queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
dispatch_group_t dispatch_group = dispatch_group_create();

for (Entry *e in self.entries)
{
    dispatch_group_async(dispatch_group, dispatch_queue, ^{
        NSString *queryString = [e getQueryString];         
        NSURL *URL = [NSURL URLWithString: queryString];
        NSURLRequest *request = [NSURLRequest requestWithURL:URL];

        AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request];
        operation.responseSerializer = [AFHTTPResponseSerializer serializer];
        operation.completionGroup = dispatch_group;
        [operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
            NSLog(@"%@", responseObject);
        } failure:nil];

        [operation start];
    });
} …
Run Code Online (Sandbox Code Playgroud)

ios afnetworking afnetworking-2

10
推荐指数
1
解决办法
2645
查看次数

iOS Swift:使用AFNetworking解析响应json

所以,我使用AFNetworking 2.0(带有Bridging-Header的ObjC框架)在本地服务器上发出一些请求.我已经按照一些教程使用Swift对其进行编码.这是代码:

var success = { (operation:AFHTTPRequestOperation!, response:AnyObject!) -> Void in
    println(response.description)
    successBlock(result:response.description)
}

var failure = { (operation:AFHTTPRequestOperation!, response:NSError!) -> Void in
    println(response.description)
    errorBlock(error:response.description)
}

var manager = AFHTTPRequestOperationManager()
manager.responseSerializer = AFJSONResponseSerializer();
manager.GET("http://127.0.0.1:8080/api/manufacturer", parameters: nil, success: success, failure: failure)
Run Code Online (Sandbox Code Playgroud)

它检索json并成功打印.响应是这样的:

(
        {
        "_id" = 539f0973e3c7f4ab1f6078f5;
        name = Manufacturer01;
    },
        {
        "_id" = 539f18c5e3c7f4ab1f6078f6;
        name = Manufacturer02;
    }
)
Run Code Online (Sandbox Code Playgroud)

但是,我无法解析它...我试图response[0]获得第一个元素,但是当我尝试时它会崩溃模拟器甚至是Xcode6 : (lldb) > po response[0]. 我尝试了一切,我看到的每个例子都解释了如何打印结果,但没有解析每个字段.

response当我尝试调试它时,对象看起来像这样:

value = Some {
    Some = (instance_type = Builtin.RawPointer …
Run Code Online (Sandbox Code Playgroud)

json ios afnetworking-2 swift

10
推荐指数
1
解决办法
3639
查看次数

如何使用AFOAuth2Manager自动刷新过期的令牌?

我正在为受OAuth2保护的服务器编写一个小型iOS客户端.

我想知道是否可以使用AFOAuth2Manager[here]自动刷新过期的令牌.

这个想法是当服务器用401响应时刷新客户端的逻辑,或者当刷新方法返回401时引发错误的逻辑应该是很常见的,所以可能它集成在某个库中.

ios oauth-2.0 afnetworking afnetworking-2

10
推荐指数
1
解决办法
3321
查看次数