HTTPS請(qǐng)求代碼演練

文藝求關(guān)注.png
  • 如何使用session發(fā)送HTTPS請(qǐng)求(需使用代理方法)
- (void)session {

    // 1.確定URL
    NSURL *url = [NSURL URLWithString:@"https://www.12306.cn/mormhweb/"];
    
    // 2.設(shè)置請(qǐng)求對(duì)象
    NSURLRequest *request = [NSURLRequest requestWithURL:url];
    
    // 3.創(chuàng)建會(huì)話對(duì)象
    NSURLSession *session = [NSURLSession sessionWithConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration] delegate:self delegateQueue:[NSOperationQueue mainQueue]];
    
    // 4.創(chuàng)建Task
    NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {
        
        // 6.解析數(shù)據(jù)
        NSLog(@"-- %@ ------- %@ ---", [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding], error);
     }];
    
    // 5.執(zhí)行Task
    [dataTask resume];
}
// 代理協(xié)議
<NSURLSessionDataDelegate>
#pragma mark - NSURLSessionDataDelegate
/**
 // 如果發(fā)送的請(qǐng)求是HTTPS的請(qǐng)求,該方法才會(huì)被調(diào)用
 @param session 會(huì)話對(duì)象
 @param challenge 質(zhì)詢,挑戰(zhàn)
 @param completionHandler 回調(diào)
 */
- (void)URLSession:(NSURLSession *)session didReceiveChallenge:(NSURLAuthenticationChallenge *)challenge completionHandler:(void (^)(NSURLSessionAuthChallengeDisposition, NSURLCredential * _Nullable))completionHandler {
    
    if (![challenge.protectionSpace.authenticationMethod isEqualToString:@"NSURLAuthenticationMethodServerTrust"]) {
        
        return;
    }
    
    NSLog(@"%@", challenge.protectionSpace);
    // NSURLSessionAuthChallengeDisposition 如何處理證書
    /**
    NSURLSessionAuthChallengeUseCredential = 0, 安裝并使用該證書
    NSURLSessionAuthChallengePerformDefaultHandling = 1, 默認(rèn)方式,該證書會(huì)被忽略
    NSURLSessionAuthChallengeCancelAuthenticationChallenge = 2, 取消請(qǐng)求,忽略證書
    NSURLSessionAuthChallengeRejectProtectionSpace = 3, 拒絕
    */
    // NSURLCredential 授權(quán)信息
    NSURLCredential *credential = [[NSURLCredential alloc] initWithTrust:challenge.protectionSpace.serverTrust];
    completionHandler(NSURLSessionAuthChallengeUseCredential, credential);  
}
  • 一般在開(kāi)發(fā)中一般會(huì)使用第三方框架處理發(fā)送網(wǎng)絡(luò)數(shù)據(jù),我們以AFNetworking為例講
- (void)AFN {

    // 01.創(chuàng)建會(huì)話管理對(duì)象
    AFHTTPSessionManager *httpSessionManager = [AFHTTPSessionManager manager];
    
    // +// 更改解析方式
    httpSessionManager.responseSerializer = [AFHTTPResponseSerializer serializer];
    
    // +// 設(shè)置對(duì)證書的處理方式 是否接收無(wú)效證書
    httpSessionManager.securityPolicy.allowInvalidCertificates = YES;
    // +// AFN內(nèi)部默認(rèn)會(huì)對(duì)域名進(jìn)行驗(yàn)證 修改是否對(duì)域名進(jìn)行驗(yàn)證
    httpSessionManager.securityPolicy.validatesDomainName = NO;
    
    // 02.發(fā)送請(qǐng)求
    [httpSessionManager GET:@"https://www.12306.cn/mormhweb/" parameters:nil progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
        
        NSLog(@"-- %@ ---", [[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding]);
    } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
        
        NSLog(@"-- %@ ---", error);
    }];
}
關(guān)注一下又不會(huì)懷孕.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,661評(píng)論 19 139
  • 從三月份找實(shí)習(xí)到現(xiàn)在,面了一些公司,掛了不少,但最終還是拿到小米、百度、阿里、京東、新浪、CVTE、樂(lè)視家的研發(fā)崗...
    時(shí)芥藍(lán)閱讀 42,821評(píng)論 11 349
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,232評(píng)論 25 708
  • 前言:本文僅作為第一次學(xué)習(xí)設(shè)計(jì)模式的參考和筆記。初探工廠模式&抽象工廠模式: 工廠模式:Factory Patte...
    齊舞647閱讀 535評(píng)論 0 0
  • 學(xué)習(xí):今天學(xué)習(xí)了張?jiān)姵秸n程,并溫暖了一個(gè)會(huì)員,并讓親推跟進(jìn)好自己的會(huì)員 今天沒(méi)有推薦會(huì)員,但是我會(huì)努力加油的,這個(gè)...
    237c27e82c85閱讀 235評(píng)論 0 1

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