国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

iOS網(wǎng)絡(luò)-01-NSURLRequest與NSURLConnection

2019-11-14 18:30:01
字體:
供稿:網(wǎng)友

NSURLRequest


  • NSURLRequest封裝了一次網(wǎng)絡(luò)請求所需要的數(shù)據(jù),主要封裝了以下信息:

    • 請求路徑(URL)
    • 請求方法(GET或POST)
    • 請求頭
    • 請求體
    • 超時(shí)參數(shù)
  • NSURLRequest與其子類NSMutableURLRequest

    • NSURLRequest的所有的請求信息拼接在請求路徑(URL)的后面
    • NSMutableURLRequest的請求路徑與其他的請求信息分開,其他請求信息通過對應(yīng)的Key對請求對象進(jìn)行設(shè)置
    • NSURLRequest通常用于GET請求
    • NSMutableURLRequest通常用于POST請求
  • NSURLRequest封裝一次網(wǎng)絡(luò)請求的的步驟

    //1.創(chuàng)建請求路徑NSString *strURL = [NSString stringWithFormat:@"(此處為URL)/login?username=%@&pwd=%@", @"用戶名", @"密碼"];NSURL *url = [NSURL URLWithString:];//2.根據(jù)請求路徑封裝請求NSURLRequest *request = [NSURLRequest requestWithURL:url];
  • NSMutableURLRequest封裝一次網(wǎng)絡(luò)請求的的步驟

    //1.創(chuàng)建請求路徑NSURL *url = [NSURL URLWithString:@"(此處為URL)/login"];//2.創(chuàng)建請求NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];//3.設(shè)置請求方法request.HTTPMethod = @"POST";//4.設(shè)置請求參數(shù)request.HTTPBody = [@"username="用戶名"&pwd="密碼" dataUsingEncoding:NSUTF8StringEncoding];//5.設(shè)置超時(shí)request.timeoutInterval = 5;

NSURLConnection


  • NSURLConnection發(fā)送請求的步驟

    • 創(chuàng)建請求路徑(NSURL)
    • 將請求路徑封裝成請求對象(NSURLRequest),設(shè)置其他請求參數(shù)
    • 使用NSURLConnection發(fā)送同步/異步請求
  • NSURLConnection的代理

    • NSURLConnectionDelegate

      - (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error/***遇到錯(cuò)誤的時(shí)候調(diào)用,請求終止*/
    • NSURLConnectionDataDelegate

      - (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response/***接收到服務(wù)器響應(yīng)的時(shí)候調(diào)用*response的中包含了服務(wù)器的響應(yīng)信息,比較有價(jià)值是此次請求的數(shù)據(jù)的總長度*/- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data/***接收到服務(wù)器的數(shù)據(jù)的時(shí)候調(diào)用,若數(shù)據(jù)較多會多次調(diào)用*通常在該方法中對服務(wù)器返回的數(shù)據(jù)進(jìn)行存儲*也可以在該方法中計(jì)算下載進(jìn)度*/- (void)connectionDidFinishLoading:(NSURLConnection *)connection/***數(shù)據(jù)加載完畢的時(shí)候調(diào)用*/
    • NSURLConnectionDownloadDelegate

      - (void)connection:(NSURLConnection *)connection didWriteData:(long long)bytesWritten totalBytesWritten:(long long)totalBytesWritten expectedTotalBytes:(long long) expectedTotalBytes/***每次向沙盒中寫文件都會調(diào)用該方法*/- (void)connectionDidResumeDownloading:(NSURLConnection *)connection totalBytesWritten:(long long)totalBytesWritten expectedTotalBytes:(long long) expectedTotalBytes/***該方法是支持?jǐn)帱c(diǎn)下載的核心*/- (void)connectionDidFinishDownloading:(NSURLConnection *)connection destinationURL:(NSURL *) destinationURL/***由于:下載的文件保存在tmp文件夾中,該文件夾中的數(shù)據(jù)會被系統(tǒng)定時(shí)刪除*所以該方法必須實(shí)現(xiàn),用于將改變數(shù)據(jù)的存儲位置*/
  • NSURLConnection的請求方式

    • 同步請求(線程會被阻塞)

      NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];/***data:服務(wù)器返回的數(shù)據(jù),即請求的數(shù)據(jù)*request:請求請求對象*response:服務(wù)器的響應(yīng)數(shù)據(jù)*error:錯(cuò)誤信息*/
    • 異步請求

      //方法一(block)[NSURLConnection sendAsynchronousRequest:request queue:[[NSOperationQueue alloc] init] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {    /**    *請求完成回調(diào)的block,參數(shù)的含義與銅鼓請求相同    */}];//方法二(代理)[NSURLConnection connectionWithRequest:request delegate:self]/***自動發(fā)送請求*/NSURLConnection *connect = [[NSURLConnection alloc] initWithRequest:request delegate:self startImmediately:NO];/***需要手動發(fā)送請求*/

URL中的中文處理


  • URL中的中文通要進(jìn)行處理,通常使用UTF-8編碼

    //進(jìn)行如下轉(zhuǎn)碼[urlStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 通州市| 襄城县| 宽甸| 孟津县| 乌兰察布市| 乐清市| 江山市| 汉源县| 玛曲县| 綦江县| 苍溪县| 东方市| 仙居县| 凌源市| 信丰县| 绥宁县| 商丘市| 西贡区| 紫金县| 昌乐县| 长汀县| 启东市| 红桥区| 新巴尔虎右旗| 湘乡市| 南安市| 如东县| 高淳县| 淮滨县| 高邑县| 黑河市| 内黄县| 老河口市| 娱乐| 南阳市| 汾阳市| 临海市| 金堂县| 隆化县| 泰顺县| 安新县|