AFNetworking AFHTTPClient类

时间:2013-10-21 19:07:14

标签: iphone ios image-uploading restler afnetworking-2

我对iOS编程很新,特别是涉及到webservices时。我正在开发一个用于学术目的的应用程序,我需要与我的服务器进行通信,目前正在使用AFNetworking2和Restler / php,一切都与GET方法有关。但我无法上传任何内容。

已经阅读了几个小时,在github支持网站,stackoverflow,几乎所有上传图片的例子/问题(并且有很多)使用这一行:

AFHTTPClient *client = [AFHTTPClient clientWithBaseURL:[NSURL URLWithString:@"http://server"]]; 

我有一个Client类,AFHTTPSessionManager的子类,以及我的sharedClient。但是所有示例都使用此AFHTTPClient和initWithURL以及AFJSONRequestOperation等其他类,我无法再找到它。

大多数情况下它说我应该创建AFHTTPClient的单例,子类,但我无法在任何地方找到它。有些链接甚至将我发送到官方github存储库,但它不再可用。 所以我的问题是,在哪里可以获得有关AFHTTPClient的更多信息,如果我使用它,任何人都可以向我指出如何创建一个或至少了解其功能的教程。

干杯

3 个答案:

答案 0 :(得分:23)

在AFNetworking 2.0中,AFHTTPClient已被AFHTTPRequestOperationManager / AFHTTPSessionManager取代。我建议你参考example in git by them。 Git克隆并在XCode中打开。它应该对你有所帮助。这是最新的例子。

如果要使用AFHTTPClient,即1.x代码。这是git link to the branch。那个pod规格是

pod'AFNetworking','〜> 1.3.3'

在2.0 AFNetworking中,您可以像这样创建一个单独的客户端。

接口

@interface AFAppDotNetAPIClient : AFHTTPSessionManager

+ (instancetype)sharedClient;

@end

实施

#import "AFAppDotNetAPIClient.h"

static NSString * const AFAppDotNetAPIBaseURLString = @"https://alpha-api.app.net/";

@implementation AFAppDotNetAPIClient

+ (instancetype)sharedClient {
    static AFAppDotNetAPIClient *_sharedClient = nil;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        _sharedClient = [[AFAppDotNetAPIClient alloc] initWithBaseURL:[NSURL URLWithString:AFAppDotNetAPIBaseURLString]];
        [_sharedClient setSecurityPolicy:[AFSecurityPolicy policyWithPinningMode:AFSSLPinningModePublicKey]];
    });

    return _sharedClient;
}

@end

答案 1 :(得分:2)

AFHTTPClient来自AFNetworking 1.x - https://github.com/AFNetworking/AFNetworking/tree/1.x

AFNetworking 2.0是一个非常新的库,因此没有太多关于它的教程,现在你仍然可以使用第一个版本,直到你觉得有时间学习2.x))

希望帮助

答案 2 :(得分:2)

这是针对最新版AFNetworking进行修改的解决方案。

//sample PNG
NSData *imageData = UIImagePNGRepresentation([UIImage imageNamed:@"700k_image.png"]);
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
[manager POST:WEBSERVICE_IMAGEM_UPLOAD parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
            [formData appendPartWithFileData:imageData name:@"image" fileName:@"image_name" mimeType:@"image/png"];
             } success:^(AFHTTPRequestOperation *operation, id responseObject) {
            NSLog(@"Success: %@", responseObject);
        } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
            NSLog(@"Error: %@", error);
        }];