iOS https請(qǐng)求跳過驗(yàn)證請(qǐng)求數(shù)據(jù)

封裝系統(tǒng)自帶的請(qǐng)求

https.png

我個(gè)人根據(jù)項(xiàng)目需求封裝的代碼如下,僅供參考

YWRequestManager.h

#import <Foundation/Foundation.h>
#import <CoreGraphics/CoreGraphics.h>

/**
 *  成功block
 *
 *  @param xmlStr xml數(shù)據(jù)
 */
typedef void(^YWSuccessBlock)(NSString *xmlStr);

/**
 *  失敗block
 *
 *  @param error 錯(cuò)誤對(duì)象
 */
typedef void(^YWFailureBlock)(NSError *error);

@interface YWRequestManager : NSObject

- (void)requestStartWithUrl:(NSURL *)url token:(NSString *)token xmlStr:(NSString *)xmlStr success:(YWSuccessBlock)successBlock failure:(YWFailureBlock)failureBlock;

@end
#import "YWRequestManager.h"

@interface YWRequestManager ()<NSURLConnectionDelegate>
{
    //保存數(shù)據(jù)
    NSMutableData *_downloadData;
    //成功
    YWSuccessBlock _successBlock;
    //失敗
    YWFailureBlock _failureBlock;
}

@end

@implementation YWRequestManager

- (instancetype)init{
    self = [super init];
    if (self) {
        _downloadData = [NSMutableData data];
    }
    return self;
}

- (void)requestStartWithUrl:(NSURL *)url token:(NSString *)token xmlStr:(NSString *)xmlStr success:(YWSuccessBlock)successBlock failure:(YWFailureBlock)failureBlock{
    
    _successBlock = [successBlock copy];
    _failureBlock = [failureBlock copy];
    
    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url cachePolicy:NSURLRequestReloadIgnoringLocalCacheData timeoutInterval:10];
    [request setValue:@"application/soap+xml" forHTTPHeaderField:@"Content-Type"];
    [request setValue:[NSString stringWithFormat:@"Basic %@", token]forHTTPHeaderField:@"Authorization"];
    NSData *bodyData = [xmlStr dataUsingEncoding:NSUTF8StringEncoding]
    ;
    [request setValue:@(bodyData.length).stringValue forHTTPHeaderField:@"Content-Length"];
    [request  setHTTPBody:bodyData];
    NSData *data = [xmlStr dataUsingEncoding:NSUTF8StringEncoding];
    [request setHTTPBody:data];
    [request setHTTPMethod:@"POST"];
    [NSURLConnection connectionWithRequest:request delegate:self];
}


#pragma mark NSURLConnectionDelegate
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response{
    _downloadData.length = 0;
}

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data{
    [_downloadData appendData:data];
}

- (void)connectionDidFinishLoading:(NSURLConnection *)connection{
    
    NSString *xmlStr = [[NSString alloc] initWithData:_downloadData encoding:NSUTF8StringEncoding];
    NSLog(@"請(qǐng)求的數(shù)據(jù):%@",xmlStr);
    //成功回調(diào)
    if(_successBlock){
        _successBlock(xmlStr);
    }
}

- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error{
    NSLog(@"請(qǐng)求失?。?@",error);
    //失敗回調(diào)
    if(_failureBlock){
        _failureBlock(error);
    }
}

//https
- (BOOL)connection:(NSURLConnection *)connection canAuthenticateAgainstProtectionSpace:(NSURLProtectionSpace *)protectionSpace{
    return [protectionSpace.authenticationMethod isEqualToString:NSURLAuthenticationMethodServerTrust];
}

//https
- (void)connection:(NSURLConnection *)connection didReceiveAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge{
    
    if ([challenge.protectionSpace.authenticationMethod isEqualToString:NSURLAuthenticationMethodServerTrust]){
        [[challenge sender] useCredential:[NSURLCredential credentialForTrust:challenge.protectionSpace.serverTrust] forAuthenticationChallenge:challenge];
        
        [[challenge sender] continueWithoutCredentialForAuthenticationChallenge:challenge];
    }
}

@end

最后編輯于
?著作權(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)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,029評(píng)論 25 709
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫(kù)、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 15,284評(píng)論 4 61
  • 16即將結(jié)束,迎來17年。16這一年里比較讓你們記憶猶新的經(jīng)歷有哪些,17又有哪些規(guī)劃。
    來信以回復(fù)閱讀 269評(píng)論 0 0
  • 今天,我讀了《狼王夢(mèng)》這本書。它講述了母狼紫嵐如何培養(yǎng)育三只小狼在大自然掙扎求生存而發(fā)展成為狼王的經(jīng)過,《狼王...
    一凡風(fēng)順閱讀 287評(píng)論 0 0
  • 因?yàn)橛心?,一切才變得有意義。 縱使年華不再,想起來時(shí),心上總是那樣地溫軟。 或許今生你和我永遠(yuǎn)不可能,你的笑容依然...
    銘玥詠全閱讀 315評(píng)論 1 1

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