
如何将afnetworking打包到ios静态库
1个回答
展开全部
方法1 --
创建一个 AFHTTPClient 实例
AFHTTPClient * client = [[AFHTTPClient alloc] initWithBaseURL:[NSURL URLWithString:@"http://api.jiepang.com"]];
// 这里一定要有一个 baseURL - 不然会抛出一个异常 --
创建一个 NSURLRequest 实例
NSDictionary * params = @{@"apiver": @"4",@"id" : @"830755858",@"extra_info": @"1"};
NSURLRequest * request = [client requestWithMethod:@"POST"
path:@"users/show"
parameters:params];
@param method 网络请求方式,比如 GET,POST,PUT,DELETE , 不能为 nil --
@param path 和 baseURL 组合成为一个 url -- 通俗的说,就是调用的接口 -- 比如,调用http://api.jiepang.com/users/show,这个接口 -- 那么 baseURL 为 http://api.jiepang.com -- path 为users/show
@param parameters 网络请求参数 -- http://api.jiepang.com/v1/users/show?id=123 -- id=123 就是这个参数
创建一个 AFHTTPRequestOperation 实例进行网络链接
AFHTTPRequestOperation * operation = [client HTTPRequestOperationWithRequest:request success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@"success obj == %@",responseObject);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"faild , error == %@ ", error);
}];
[operation start];
这样 - 一次简单的调用就OK了 -
当然也可以,用封装好的其它方法 --
- (void)getPath:(NSString *)path
parameters:(NSDictionary *)parameters
success:(void (^)(AFHTTPRequestOperation *operation, id responseObject))success
failure:(void (^)(AFHTTPRequestOperation *operation, NSError *error))failure;
- (void)postPath:(NSString *)path
parameters:(NSDictionary *)parameters
success:(void (^)(AFHTTPRequestOperation *operation, id responseObject))success
failure:(void (^)(AFHTTPRequestOperation *operation, NSError *error))failure;
- (void)putPath:(NSString *)path
parameters:(NSDictionary *)parameters
success:(void (^)(AFHTTPRequestOperation *operation, id responseObject))success
failure:(void (^)(AFHTTPRequestOperation *operation, NSError *error))failure;
- (void)deletePath:(NSString *)path
parameters:(NSDictionary *)parameters
success:(void (^)(AFHTTPRequestOperation *operation, id responseObject))success
failure:(void (^)(AFHTTPRequestOperation *operation, NSError *error))failure;
- (void)patchPath:(NSString *)path
parameters:(NSDictionary *)parameters
success:(void (^)(AFHTTPRequestOperation *operation, id responseObject))success
failure:(void (^)(AFHTTPRequestOperation *operation, NSError *error))failure;
方法二 --
[client getPath:path
parameters:params
success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSString * obj = [[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding];
NSLog(@"obj == %@",obj);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"faild -- ");
}];
这和上面的效果是一样的 --
看到,前面返回的数据全部为 NSdata - 为添加了麻烦 -- 而且大部分的 api 返回数据都为 json --
同样 - 可以用 AFHTTPRequestOperation 的子类 AFJSONRequestOperation 来替代 --
方法三 --
NSDictionary * params = @{@"apiver": @"4",@"id" : @"830755858",@"extra_info": @"1"};
AFHTTPClient * client = [[AFHTTPClient alloc] initWithBaseURL:[NSURL URLWithString:@"http://api.jiepang.com"]];
NSURLRequest * request = [client requestWithMethod:@"POST"
path:@"users/show"
parameters:params];
AFJSONRequestOperation * operation = [AFJSONRequestOperation JSONRequestOperationWithRequest:request success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON) {
NSLog(@"json == %@",JSON);
} failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error, id JSON) {
NSLog(@"faild -- ");
}];
[operation start];
创建一个 AFHTTPClient 实例
AFHTTPClient * client = [[AFHTTPClient alloc] initWithBaseURL:[NSURL URLWithString:@"http://api.jiepang.com"]];
// 这里一定要有一个 baseURL - 不然会抛出一个异常 --
创建一个 NSURLRequest 实例
NSDictionary * params = @{@"apiver": @"4",@"id" : @"830755858",@"extra_info": @"1"};
NSURLRequest * request = [client requestWithMethod:@"POST"
path:@"users/show"
parameters:params];
@param method 网络请求方式,比如 GET,POST,PUT,DELETE , 不能为 nil --
@param path 和 baseURL 组合成为一个 url -- 通俗的说,就是调用的接口 -- 比如,调用http://api.jiepang.com/users/show,这个接口 -- 那么 baseURL 为 http://api.jiepang.com -- path 为users/show
@param parameters 网络请求参数 -- http://api.jiepang.com/v1/users/show?id=123 -- id=123 就是这个参数
创建一个 AFHTTPRequestOperation 实例进行网络链接
AFHTTPRequestOperation * operation = [client HTTPRequestOperationWithRequest:request success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@"success obj == %@",responseObject);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"faild , error == %@ ", error);
}];
[operation start];
这样 - 一次简单的调用就OK了 -
当然也可以,用封装好的其它方法 --
- (void)getPath:(NSString *)path
parameters:(NSDictionary *)parameters
success:(void (^)(AFHTTPRequestOperation *operation, id responseObject))success
failure:(void (^)(AFHTTPRequestOperation *operation, NSError *error))failure;
- (void)postPath:(NSString *)path
parameters:(NSDictionary *)parameters
success:(void (^)(AFHTTPRequestOperation *operation, id responseObject))success
failure:(void (^)(AFHTTPRequestOperation *operation, NSError *error))failure;
- (void)putPath:(NSString *)path
parameters:(NSDictionary *)parameters
success:(void (^)(AFHTTPRequestOperation *operation, id responseObject))success
failure:(void (^)(AFHTTPRequestOperation *operation, NSError *error))failure;
- (void)deletePath:(NSString *)path
parameters:(NSDictionary *)parameters
success:(void (^)(AFHTTPRequestOperation *operation, id responseObject))success
failure:(void (^)(AFHTTPRequestOperation *operation, NSError *error))failure;
- (void)patchPath:(NSString *)path
parameters:(NSDictionary *)parameters
success:(void (^)(AFHTTPRequestOperation *operation, id responseObject))success
failure:(void (^)(AFHTTPRequestOperation *operation, NSError *error))failure;
方法二 --
[client getPath:path
parameters:params
success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSString * obj = [[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding];
NSLog(@"obj == %@",obj);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"faild -- ");
}];
这和上面的效果是一样的 --
看到,前面返回的数据全部为 NSdata - 为添加了麻烦 -- 而且大部分的 api 返回数据都为 json --
同样 - 可以用 AFHTTPRequestOperation 的子类 AFJSONRequestOperation 来替代 --
方法三 --
NSDictionary * params = @{@"apiver": @"4",@"id" : @"830755858",@"extra_info": @"1"};
AFHTTPClient * client = [[AFHTTPClient alloc] initWithBaseURL:[NSURL URLWithString:@"http://api.jiepang.com"]];
NSURLRequest * request = [client requestWithMethod:@"POST"
path:@"users/show"
parameters:params];
AFJSONRequestOperation * operation = [AFJSONRequestOperation JSONRequestOperationWithRequest:request success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON) {
NSLog(@"json == %@",JSON);
} failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error, id JSON) {
NSLog(@"faild -- ");
}];
[operation start];
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询