AFNetworking+Reachability筆記

#import "ViewController.h"
#import "Reachability.h"http://蘋果的
#import <AFNetworking.h>

@interface ViewController ()<NSXMLParserDelegate>
/** 蘋果的監(jiān)控網(wǎng)絡 */
@property (nonatomic, strong) Reachability *reachability;
@end

@implementation ViewController

-(void)viewDidLoad {

[super viewDidLoad];
       //    [self appleMonitoring];
//從web服務器加載數(shù)據(jù)
NSString *str = @"http://xxx.xml";
//1簡歷NSURL
NSURL *url = [NSURL URLWithString:str];
//2建立NSURLRequest
NSURLRequest *request = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:2.0f];
//3建立NSURLConnect的同步方法加載數(shù)據(jù)
NSURLResponse *response = nil;
NSError *error = nil;
//同步加載數(shù)據(jù)
NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];

//1實例化解析器,傳入要解析的數(shù)據(jù)
NSXMLParser *parser = [[NSXMLParser alloc]initWithData:data];
//2 設置代理
[parser setDelegate:self];
//3解析器解析,這個方法會調用代理里面的方法。
[parser parse];



NSLog(@"%@",data);

}

-(void)appleMonitoring
{

// 監(jiān)聽通知
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(getNetworkStatus) name:kReachabilityChangedNotification object:nil];

// 開始監(jiān)控網(wǎng)絡
self.reachability = [Reachability reachabilityForInternetConnection];
[self.reachability startNotifier];

}

-(void)dealloc
{

[[NSNotificationCenter defaultCenter] removeObserver:self];

[self.reachability stopNotifier];
self.reachability = nil;

}

-(void)getNetworkStatus
{

if ([Reachability reachabilityForLocalWiFi].currentReachabilityStatus != NotReachable) {
    NSLog(@"是wifi");
} else if ([Reachability reachabilityForInternetConnection].currentReachabilityStatus != NotReachable) {
    NSLog(@"是手機自帶網(wǎng)絡");
} else {
    NSLog(@"網(wǎng)絡有問題");
}

}

-(void)afnMonitoring
{

// 開始網(wǎng)絡監(jiān)控
AFNetworkReachabilityManager *mgr = [AFNetworkReachabilityManager sharedManager];

[mgr setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {
    NSLog(@"-----當前的網(wǎng)絡狀態(tài)---%zd", status);
}];

[mgr startMonitoring];

// 拿到當前網(wǎng)絡狀態(tài)
//    mgr.networkReachabilityStatus;

}

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{

AFHTTPSessionManager *mgr = [AFHTTPSessionManager manager];
// 直接使用“服務器本來返回的數(shù)據(jù)”,不做任何解析
mgr.responseSerializer = [AFHTTPResponseSerializer serializer];

//    [AFJSONResponseSerializer serializer]; // 解析服務器返回的JSON數(shù)據(jù)
//    [AFXMLParserResponseSerializer serializer]; // 解析服務器返回的XML數(shù)據(jù)

[mgr GET:@"http://xxx/test.png" parameters:nil success:^(NSURLSessionDataTask *task, NSData *responseObject) {
    NSLog(@"請求成功---%zd", responseObject.length);
} failure:^(NSURLSessionDataTask *task, NSError *error) {
    NSLog(@"請求失敗---%@", error);
}];

}

-(void)xml
{

AFHTTPSessionManager *mgr = [AFHTTPSessionManager manager];

// responseSerializer 用來解析服務器返回的數(shù)據(jù)

// 告訴AFN,以XML形式解析服務器返回的數(shù)據(jù)
mgr.responseSerializer = [AFXMLParserResponseSerializer serializer];

NSDictionary *params = @{
                         @"username" : @"xxx",
                         @"pwd" : @"xxx",
                         @"type" : @"XML"
                         };

[mgr GET:@"http://xxxx/login" parameters:params success:^(NSURLSessionDataTask *task, NSXMLParser *parser) {
    
} failure:^(NSURLSessionDataTask *task, NSError *error) {
    NSLog(@"請求失敗---%@", error);
}];

}

-(void)upload
{

AFHTTPSessionManager *mgr = [AFHTTPSessionManager manager];

[mgr POST:@"http://xxxx/upload" parameters:@{@"username" : @"123"}
    constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
    // 在這個block中設置需要上傳的文件
   //            NSData *data = [NSData dataWithContentsOfFile:@"/Users/mac/Desktop/xxxxpng"];
     //            [formData appendPartWithFileData:data name:@"file" fileName:@"test.png" mimeType:@"image/png"];
        
  //            [formData appendPartWithFileURL:[NSURL fileURLWithPath:@"/Users/mac/Desktop/xxxx.png"] name:@"file" fileName:@"xxx.png" mimeType:@"image/png" error:nil];

  [formData appendPartWithFileURL:[NSURL fileURLWithPath:@"/Users/mac/Desktop/placeholder.png"] name:@"file" error:nil];
} success:^(NSURLSessionDataTask *task, id responseObject) {
    NSLog(@"-------%@", responseObject);
} failure:^(NSURLSessionDataTask *task, NSError *error) {
    
}];

}

-(void)get2
{

// AFHTTPSessionManager內(nèi)部包裝了NSURLSession
AFHTTPSessionManager *mgr = [AFHTTPSessionManager manager];


NSDictionary *params = @{
                         @"username" : @"xxxx",
                         @"pwd" : @"xxxx"
                         };

[mgr GET:@"http://xxxx/login" parameters:params success:^(NSURLSessionDataTask *task, id responseObject) {
    NSLog(@"請求成功---%@", responseObject);
} failure:^(NSURLSessionDataTask *task, NSError *error) {
    NSLog(@"請求失敗---%@", error);
}];

}

-(void)post
{

// AFHTTPRequestOperationManager內(nèi)部包裝了NSURLConnection
AFHTTPRequestOperationManager *mgr = [AFHTTPRequestOperationManager manager];

NSDictionary *params = @{
                         @"username" : @"xxxx",
                         @"pwd" : @"xxxx"
                         };

[mgr POST:@"http://xxxx/login" parameters:params
 success:^(AFHTTPRequestOperation *operation, id responseObject) {
     NSLog(@"請求成功---%@", responseObject);
 } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
     NSLog(@"請求失敗---%@", error);
 }];

}

-(void)get
{

AFHTTPRequestOperationManager *mgr = [AFHTTPRequestOperationManager manager];
NSDictionary *params = @{
                         @"username" : @"xxxx",
                         @"pwd" : @"xxxx"
                         };


[mgr GET:@"http://xxxx/login" parameters:params
 success:^(AFHTTPRequestOperation *operation, id responseObject) {
     NSLog(@"請求成功---%@", responseObject);
 } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
     NSLog(@"請求失敗---%@", error);
}];

}

+(void)Upload:(NSString *)URLString parameters:(id)parameters uploadParam:(id)uploadParam success:(void (^)(id))success failure:(void (^)(NSError *))failure{

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
manager.requestSerializer.timeoutInterval = 10;

[manager POST:URLString parameters:parameters  constructingBodyWithBlock:^(id<AFMultipartFormData>  _Nonnull formData) {
    
    [formData appendPartWithFileData:uploadParam name:@"" fileName:@"" mimeType:@""];
    
    
} success:^(AFHTTPRequestOperation * _Nonnull operation, id  _Nonnull responseObject) {
    if (success) {
        success(responseObject);
    }
} failure:^(AFHTTPRequestOperation * _Nullable operation, NSError * _Nonnull error) {
    if (failure) {
        failure(error);
    }
}];

}

@end

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容