- 首先利用 CocoaPods 把框架AFN导入到项目中。
- 然后在ViewController里面导入<AFNetworking.h>, http请求记得配置 APP Transport。记得遵守协议
NSXMLParserDelegate
1. json请求序列化
-(void)json
{
// 创建会话管理者
AFHTTPSessionManager *manager=[AFHTTPSessionManager manager];
// 写参数
NSDictionary *paramDict=@{
@"username":@"520it",
@"pwd":@"520it",
@"type":@"JSON"
};
// 发送get请求
[manager GET:@"http://120.25.226.186:32812/login" parameters:paramDict progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
NSLog(@"%@",responseObject);
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
NSLog(@"请求失败--%@",error);
}];
}
2.xml序列化
-(void)xml
{
// 创建会话管理者
AFHTTPSessionManager *manager=[AFHTTPSessionManager manager];
// 如果是返回的是 xml 数据,那么应该修改AFN的解决方案
manager.responseSerializer=[AFXMLParserResponseSerializer serializer];
// 写参数
NSDictionary *paramDict=@{
@"type":@"XML"
};
// 发送get请求
[manager GET:@"http://120.25.226.186:32812/video" parameters:paramDict progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
NSXMLParser *parser=(NSXMLParser *)responseObject;
// 设置代理
parser.delegate=self;
// 开始解析
[parser parse];
//NSLog(@"%@-%@",[responseObject class],responseObject);
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
NSLog(@"请求失败--%@",error);
}];
}
3. 如何返回的数据既不是xml,也不是json那么应该修改解析方案
#pragma mark - 如何返回的数据既不是xml,也不是json那么应该修改解析方案
-(void)httpData2
{
// 创建会话管理者
AFHTTPSessionManager *manager=[AFHTTPSessionManager manager];
manager.responseSerializer.acceptableContentTypes=[NSSet setWithObject:@"text/html"];
// 如果是返回的是 xml 数据,那么应该修改AFN的解决方案
manager.responseSerializer=[AFHTTPResponseSerializer serializer];
// 发送get请求
[manager GET:@"http://www.baidu.com" parameters:nil progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
NSLog(@"%@-%@",[responseObject class],[[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding] );
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
NSLog(@"请求失败--%@",error);
}];
}
另:NSXMLParserDelegate委托中解析结点的方法
-(void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary<NSString *,NSString *> *)attributeDict
{
NSLog(@"%@----%@",elementName,attributeDict);
}
网友评论