中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

ios開發網絡編程

發布時間:2020-07-31 23:13:17 來源:網絡 閱讀:340 作者:bryanscom 欄目:移動開發

網絡上搜索關于ios網絡編程基本就首頁全是講的同一篇文章,被轉爛了。

找了半天沒找到源文出處。下面是可以參考的一部分。

主要將了兩部分:1.網絡檢測;2.簡單的NSURLConnection鏈接以及設置代理。


問了下朋友,基本說現在都用

HTTP包裝開源項目ASIHTTPRequest。

但這邊我們還是從最原始的框架提供的API入手,后邊我再去看下這個。


這邊我就以最簡單的例子來引入幾個常用的API中的類。

[cpp] view plaincopy

//  

//  NLViewController.m  

//  NetWorkTest  

//  

//  Created by Nono on 12-5-16.  

//  Copyright (c) 2012年 NonoWithLilith. All rights reserved.  

//  

#import "NLViewController.h"  


@interface NLViewController ()  


@end  


@implementation NLViewController  

@synthesize label = _label;  

@synthesize data = _data;  

@synthesize connection = _connection;  

- (void)dealloc{  

   [self.label release];  

   [self.data release];  

   [super dealloc];  

}  

- (void)viewDidLoad  

{  

   [super viewDidLoad];  

   UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(10.0, 10.0, 300.0, 400)];  

   self.label = label;  

   label.textAlignment = UITextAlignmentCenter;  

   [label setNumberOfLines:0];  

   label.lineBreakMode = UILineBreakModeWordWrap;  

   self.label.text = @"正在在請求數據";  

   [self.view addSubview:label];  

   [label release];  

   //step 1:請求地址  

   NSString *urlString = @"http://www.google.com";  

   NSURL *url = [NSURL URLWithString:urlString];  

   //step 2:實例化一個request  

   NSURLRequest *requrst = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:30.0];  

   //step 3:創建鏈接  

   self.connection = [[NSURLConnection alloc] initWithRequest:requrst delegate:self];  

   if ( self.connection) {  

       NSLog(@"鏈接成功");  

   }else {  

       NSLog(@"鏈接失敗");  

   }  


   [url release];  

   [urlString release];  

   [requrst release];  

   // Do any additional setup after loading the view, typically from a nib.  

}  


- (void)viewDidUnload  

{  

   self.label = nil;  

   self.data = nil;  

   [super viewDidUnload];  

   // Release any retained subviews of the main view.  

}  


- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation  

{  

   return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);  

}  


#pragma mark-  

#pragma NSUrlConnectionDelegate methods  

- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response  

{  

   //接受一個服務端回話,再次一般初始化接受數據的對象  


   NSLog(@"返回數據類型:%@",[response textEncodingName]);  

   NSMutableData *d = [[NSMutableData alloc] init];  

    self.data = d;  

   [d release];  

}  


- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data  

{  

   //接受返回數據,這個方法可能會被調用多次,因此將多次返回數據加起來  


   NSUInteger datalength = [data length];  

   NSLog(@"返回數據量:%d",datalength);  

   [self.data appendData:data];  

}  


- (void)connectionDidFinishLoading:(NSURLConnection *)connection  

{  

   //連接結束  


   NSLog(@"%d:",[self.data length]);  

   NSStringEncoding enc = CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000);  

   NSString *mystr = [[NSString alloc] initWithData:_data encoding:enc];  

  // string i  

   NSLog(@"最后的結果:%@",mystr);  

   self.label.text = mystr;  

   [mystr release];  

   [self.connection release];  

}  


- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error  

{  

   //鏈接錯誤  

}  


@end  

簡單說下:

1.最簡單的網絡鏈接,一個url,一個request,一個connection以及一個response返回。默認的是get請求。

2.data轉碼問題,這個一開始有點糾結。即,在最后我們要把NSData轉化成NSString時候需要一個轉碼格式,一開始我習慣性的用了UTF-8,

然后發現轉化后String 是Null,于是去打印了下請求返回的一些參數,顯示的是GB2312~。


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

林西县| 霞浦县| 聂荣县| 克东县| 清水县| 神农架林区| 宜兰市| 东兴市| 凤城市| 乐业县| 叶城县| 安溪县| 柳州市| 凤庆县| 晋州市| 杭锦旗| 辉南县| 文成县| 江西省| 鸡西市| 朝阳县| 客服| 房产| 额尔古纳市| 余干县| 长垣县| 金湖县| 临沭县| 门头沟区| 琼中| 若尔盖县| 武夷山市| 南涧| 珠海市| 武乡县| 新源县| 方城县| 临澧县| 大名县| 漯河市| 汝城县|