创建请求

标准HTTP协议请求方式有6种:GET、HEAD、PUT、DELETE、POST、OPTIONS。而我们常用的只有四种:GET、PUT、DELETE、POST,这四种BANetowkring中的BARequest都对其做了封装。下面我就举二种GET和POST来解释怎么去创建一个请求。

创建GET请求

BARequest *request = [BARequest GETRequestWithPath:@"hello" parameters:@{@"username" : @"abel"}];

创建POST请求

BARequest *request = [BARequest POSTRequestWithPath:@"hello" parameters:@{@"username" : @"abel"}];

执行请求

[[[BAClient currentClient] performRequest:request] onComplete:^(id result, NSError *error) {
if (error) {
NSLog(@"请求正常");
} else {
NSLog(@"请求出错");
}
}];

设置不同类型的请求

BANetworking支持三种方式请求,分别是BARequestContentTypeJSON, BARequestContentTypeFormURLEncoded, BARequestContentTypeMultipart;分别代表请求参数是json串、GET请求URL中参数带有特殊字符、表单请求。

request.contentType = BARequestContentTypeMultipart;

侦听返回值

BANetworking提供了如下几种侦听方式,他即有成功、失败的回调,也可以侦听进行中的回调,你可以根据自己喜好选择不同的方式。

BAAsyncTask *asyncTask = [[BAClient currentClient] performRequest:request];
[asyncTask onSuccess:^(id result) {
    NSLog(@"请求成功");
}];

[asyncTask onError:^(NSError *error) {
    NSLog(@"请求失败");
}];

[asyncTask onProgress:^(float progress) {
    NSLog(@"请求正在进行中");
}];

[asyncTask onComplete:^(id result, NSError *error) {
    if (error) {
        NSLog(@"请求失败");
    } else {
        NSLog(@"请求成功");
    }
}];

[asyncTask onSuccess:^(id result) {
    NSLog(@"请求成功");
} onError:^(NSError *error) {
    NSLog(@"请求失败");
}];