html和xml解析



//
//  RequestHandle.h
//  RequestHandle
//
//  Created by huchunyuan on 15/9/7.
//  Copyright (c) 2015 Lafree. All rights reserved.
//

#import <Foundation/Foundation.h>
@class
RequestHandle;

@protocol RequestHandleDelegate <NSObject>

// 请求成功 获取数据
- (
void )requestHandle:(RequestHandle *)requestHandle didSucceedWithData:(NSData *)data;

// 请求失败 获取失败信息
- (
void )requestHandle:(RequestHandle *)requestHandle didFailWithError:(NSError *)error;

@end

@interface RequestHandle : NSObject
// 代理属性
@property ( nonatomic , assign ) id <RequestHandleDelegate>delegate;
// 初始化
- (
id )initWithUrlString:(NSString *)urlString parameter:(NSString *)parameter requestMethod:(NSString *)method delegate:( id <RequestHandleDelegate>)delegate;
// 取消请求的方法
- (
void )cancleRequest;
@end

//
//  RequestHandle.m
//  RequestHandle
//
//  Created by huchunyuan on 15/9/7.
//  Copyright (c) 2015 Lafree. All rights reserved.
//

#import "RequestHandle.h"

@interface RequestHandle () <NSURLConnectionDataDelegate>
@property ( nonatomic , retain )NSMutableData *data; // 用于拼接 闲散的数据
@property ( nonatomic , retain )NSURLConnection *connection; // 用于接收请求对象

@end

@implementation RequestHandle
// 初始化
- (
id )initWithUrlString:(NSString *)urlString parameter:(NSString *)parameter requestMethod:(NSString *)method delegate:( id <RequestHandleDelegate>)delegate{
   
self = [ super init];
   
if ( self ) {
       
// 代理的赋值
       
self .delegate = delegate;
       
       
if ([method isEqualToString: @"GET" ]) {
           
// 进行 GET 请求
            [
self GETRequestWithURLString:urlString];
        }
else if ([method isEqualToString: @"POST" ]){
           
// 进行 POST 请求
            [
self POSTRequestWithURLString:urlString parameter:parameter];
        }
    }
   
return self ;
}
// 取消请求的方法
- (
void )cancleRequest{
    [_connection cancel];
}

// GET
- (
void )GETRequestWithURLString:(NSString *)urlString{
   
// 1. 创建 URL 对象
   
// 再编码
    NSString *urlStr = [urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
    NSURL *url = [NSURL URLWithString:urlStr];
   
   
// 2. 创建 request 对象
    NSURLRequest *request = [NSURLRequest requestWithURL:url];
   
   
// 3. 请求 并设置代理
   
self .connection = [NSURLConnection connectionWithRequest:request delegate: self ];
}
// POST
- (
void )POSTRequestWithURLString:(NSString *)urlString parameter:(NSString *)parameter{
   
// 1. 创建 url 对象
    NSURL *url = [NSURL URLWithString:urlString];
   
// 2. 创建可变的请求对象
    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
   
// 3. 设置请求体
    NSData *bodyData = [parameter dataUsingEncoding:NSUTF8StringEncoding];
    [request setHTTPBody:bodyData];
    [request setHTTPMethod:
@"POST" ];
   
// 4. 请求 并设置代理
    [NSURLConnection connectionWithRequest:request delegate:
self ];
}

#pragma mark - NSURLConnectionDataDelegate
// 连接服务器
- (
void )connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response{
   
if (_data == nil ) {
       
self .data = [NSMutableData data];
    }

}

// 获取数据
- (
void )connection:(NSURLConnection *)connection didReceiveData:(NSData *)data{
   
// 数据的拼接
    [_data appendData:data];
   
}

// 完成加载
- (
void )connectionDidFinishLoading:(NSURLConnection *)connection{
   
// 通知代理将请求成功后的数据拿走
    [_delegate requestHandle:
self didSucceedWithData:_data];

}

// 请求失败
- (
void )connection:(NSURLConnection *)connection didFailWithError:(NSError *)error{
   
// 通知代理将请求失败的数据拿走
    [_delegate requestHandle:
self didFailWithError:error];

}


@end
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值