我对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的更多信息,如果我使用它,任何人都可以向我指出如何创建一个或至少了解其功能的教程。
干杯
答案 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);
}];