VolunteerMatch API Objective C
我正在使用一种常见的方法来调用 AFNetworking 的 Web 服务。用途如下:
调用 Web 服务:
NSDictionary* param = @{
@"action":@"helloWorld",
@"query":@"{\"name\":\"john\"}"
};
[self requestWithUrlString:@"URL" parmeters:paramDictionary success:^(NSDictionary *response) {
} failure:^(NSError *error) {
}];
添加两个方法:
这两个方法很常见,您可以使用NSObject类在整个项目中使用这些通用方法。
另外添加
// 定义错误代码如下...
定义kDefaultErrorCode为12345
- (void)requestWithUrlString:(NSString *)stUrl parmeters:(NSDictionary *)parameters success:(void (^)(NSDictionary *response))success failure:(void (^)(NSError *error))failure {
[self requestWithUrl:stUrl parmeters:parameters success:^(NSDictionary *response) {
if([[response objectForKey:@"success"] boolValue]) {
if(success) {
success(response);
}
}
else {
NSError *error = [NSError errorWithDomain:@"Error" code:kDefaultErrorCode userInfo:@{NSLocalizedDescriptionKey:[response objectForKey:@"message"]}];
if(failure) {
failure(error);
}
}
} failure:^(NSError *error) {
if(failure) {
failure(error);
}
}];}
并且
// 在下面的方法中设置头信息(如果需要的话,否则请删除)
- (void)requestWithUrl:(NSString *)stUrl parmeters:(NSDictionary *)parameters success:(void (^)(NSDictionary *response))success failure:(void (^)(NSError *))failure {
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
[manager setResponseSerializer:[AFHTTPResponseSerializer serializer]];
[manager.requestSerializer setValue:@"WWSE profile=\"UsernameToken\"" forHTTPHeaderField:@"Authorization"];
[manager GET:stUrl parameters:parameters success:^(AFHTTPRequestOperation *operation, id responseObject) {
if([responseObject isKindOfClass:[NSDictionary class]]) {
if(success) {
success(responseObject);
}
}
else {
NSDictionary *response = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingAllowFragments error:nil];
if(success) {
success(response);
}
}
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Error: %@", error);
if(failure) {
failure(error);
}
}];}
如有任何问题或需要更多详细信息请访问..AFNetworking
didReceiveData
被调用并不意味着所有数据都已经接收完毕,可能还有更多的数据需要到来。 - Hot Licks