首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AFNetworking AFHTTPClient类

AFNetworking AFHTTPClient类
EN

Stack Overflow用户
提问于 2013-10-22 03:07:14
回答 3查看 10.1K关注 0票数 5

我对iOS编程相当陌生,尤其是在when服务方面。我正在开发一个用于学术目的的应用程序,我需要与我的服务器通信,目前使用的是AFNetworking2和Restler/php,当涉及到获取方法时,一切都会正常工作。但我不能上传任何东西。

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

代码语言:javascript
复制
AFHTTPClient *client = [AFHTTPClient clientWithBaseURL:[NSURL URLWithString:@"http://server"]]; 

我的sharedClient中确实有一个客户端类,即AFHTTPSessionManager的子类。但所有示例都将此AFHTTPClient与initWithURL和其他类(如AFJSONRequestOperation )一起使用,我再也找不到它们了。

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

干杯

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-10-22 04:33:39

在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中,你可以像这样创建一个单例客户端。

接口

代码语言:javascript
复制
@interface AFAppDotNetAPIClient : AFHTTPSessionManager

+ (instancetype)sharedClient;

@end

实现

代码语言:javascript
复制
#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
票数 23
EN

Stack Overflow用户

发布于 2013-10-22 03:43:20

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

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

希望有帮助

票数 2
EN

Stack Overflow用户

发布于 2013-10-22 07:03:05

以下是针对最新版本的AFNetworking进行了修改的解决方案。

代码语言:javascript
复制
//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);
        }];
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19502673

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档