新建類HttpTool繼承NSObject
<code>@interface BAHttpTool : NSObject</code>
一汤善、封裝用AFN發(fā)送GET請求
<pre><code>
/**
- 發(fā)送一個GET請求 用AFN
- @param url 請求路徑
- @param params 請求參數(shù)
- @param success 請求成功后的回調(diào)(請將請求成功后想做的事情寫到這個block中)
- @param failure 請求失敗后的回調(diào)(請將請求失敗后想做的事情寫到這個block中)
*/
-
(void)Get:(NSString *)url params:(id)params success:(void (^)(id responseObj))success failure:(void (^)(NSError *error))failure;
</code> </pre>
實現(xiàn)代碼
<pre><code>
-
(void)Get:(NSString *)url params:(id)params success:(void (^)(id))success failure:(void (^)(NSError *))failure
{// 1.獲得請求管理者
AFHTTPRequestOperationManager *mar = [AFHTTPRequestOperationManager manager];
// 設(shè)置請求格式
[mar GET:url parameters:params success:^(AFHTTPRequestOperation *operation, id responseObject) {
if (success) {
success(responseObject);
}
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
if (failure) {
failure(error);
}
}];
}
</code></pre>
使用方法
<pre><code>
[BAHttpTool Get:@"http:xxx.xx.xx" params:nil success:^(id responseObj) {
} failure:^(NSError *error) {
}]
</code></pre>
二次氨、封裝用AFN發(fā)送POST請求
<pre><code>
- (void)Post:(NSString *)url params:(id)params success:(void (^)(id responseObj))success failure:(void (^)(NSError *error))failure;
</code></pre>
實現(xiàn)代碼
<pre><code>
- (void)Post:(NSString *)url params:(id)params success:(void (^)(id))success failure:(void (^)(NSError *))failure
{
// 1.獲得請求管理者
// AFHTTPRequestOperationManager
AFHTTPRequestOperationManager *mar = [AFHTTPRequestOperationManager manager];
[mar POST:url parameters:params success:^(AFHTTPRequestOperation *operation, id responseObject) {
if (success) {
success(responseObject);
}
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
if (failure) {
failure(error);
}
}];
}
</code></pre>
使用方法
<pre><code>
[BAHttpTool Post:@"http:xxx.xx.xx" params:nil success:^(id responseObj) {
} failure:^(NSError *error) {
}]
</code></pre>
封裝AFN網(wǎng)絡加載指示器
<pre><code>
typedef NS_ENUM(NSInteger, NetworkReachabilityStatus) {
NetworkReachabilityStatusUnknown = -1,
NetworkReachabilityStatusNotReachable = 0,
NetworkReachabilityStatusReachableViaWWAN = 1,
NetworkReachabilityStatusReachableViaWiFi = 2,
};
+(void)setReachabilityStatusChangeBlock:(void(^)(NetworkReachabilityStatus status))block;
+(void)stopMonitoring太雨;
</code></pre>
實現(xiàn)代碼
<pre><code>
+(void)setReachabilityStatusChangeBlock:(void(^)(NetworkReachabilityStatus status))block{
//監(jiān)測網(wǎng)絡狀態(tài)
AFNetworkReachabilityManager *netMan = [AFNetworkReachabilityManager sharedManager];
[netMan setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {
switch (status) {
case AFNetworkReachabilityStatusUnknown: // 未知網(wǎng)絡
if (block) {
block(NetworkReachabilityStatusUnknown);
}
break;
case AFNetworkReachabilityStatusNotReachable: // 沒有網(wǎng)絡
if (block) {
block(NetworkReachabilityStatusNotReachable);
}
break;
case AFNetworkReachabilityStatusReachableViaWWAN: // 手機自帶網(wǎng)絡
if (block) {
block(NetworkReachabilityStatusReachableViaWWAN);
}
break;
case AFNetworkReachabilityStatusReachableViaWiFi: // WIFI
if (block) {
block(NetworkReachabilityStatusReachableViaWiFi);
}
break;
}
}];
[netMan startMonitoring];
}
</code></pre>
<pre><code>
+(void)stopMonitoring
{
AFNetworkReachabilityManager *netMan = [AFNetworkReachabilityManager sharedManager];
[netMan stopMonitoring];
}
</code></pre>