詳談iPhone中網(wǎng)絡(luò)請(qǐng)求
詳談iPhone中網(wǎng)絡(luò)請(qǐng)求是本文要介紹的內(nèi)容,主要介紹了網(wǎng)絡(luò)編程的相關(guān)內(nèi)容,很詳細(xì)的介紹了如何獲得或者發(fā)送網(wǎng)絡(luò)請(qǐng)求。不多說,我們先來看詳細(xì)內(nèi)容。
一、簡(jiǎn)單的get請(qǐng)求
網(wǎng)絡(luò)編程是我們經(jīng)常遇到的,在IPhone中,SDK提供了良好的接口,主要使用的類有NSURL,NSMutableURLRequest,NSURLConnection等等。一般情況下建議使用異步接收數(shù)據(jù)的方式來請(qǐng)求網(wǎng)絡(luò)連接,這種網(wǎng)絡(luò)連接分為兩步,第一步是新建NSURLConnection對(duì)象后,直接調(diào)用它的start方法來連接網(wǎng)絡(luò)。第二步是使用delegate方式來接收數(shù)據(jù),這里給一個(gè)常用的寫法:
網(wǎng)絡(luò)請(qǐng)求部分:
- NSString *urlString = [NSString stringWithFormat:@"http://www.voland.com.cn:8080/weather/weatherServlet?city=%@",kcityID];
- NSURL *url = [NSURL URLWithString:urlString];
- NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
- NSURLConnection *aUrlConnection = [[NSURLConnection alloc] initWithRequest:request delegate:self startImmediately:true];
- self.urlConnection = aUrlConnection;//這里的urlConnection在頭文件中定義的變量
- [self.urlConnection start];//開始連接網(wǎng)絡(luò)
- [aUrlConnection release];
- [[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:YES];
接收數(shù)據(jù)部分,接收到的數(shù)據(jù)主要是在這里處理
- - (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response {
- NSLog(@"接收完響應(yīng):%@",response);
- }
- - (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
- NSLog(@"接收完數(shù)據(jù):");
- }
- - (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error {
- NSLog(@"數(shù)據(jù)接收錯(cuò)誤:%@",error);
- }
- - (void)connectionDidFinishLoading:(NSURLConnection *)connection {
- NSLog(@"連接完成:%@",connection);
- [[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:NO];
- }
二、Post請(qǐng)求
進(jìn)行post請(qǐng)求,主要是設(shè)置好NSMutableURLRequest對(duì)象,在get請(qǐng)求中,我們都使用了默認(rèn)的,實(shí)際這些request內(nèi)容都可以設(shè)置的。設(shè)置好后,其它與get方式同:
- NSString *content=[[NSString alloc] initWithData: data encoding: NSUTF8StringEncoding];
- [request setHTTPBody: content];
- [request setHTTPMethod: @"POST"];
- [request setValue:@"Close" forHTTPHeaderField:@"Connection"];
- [request setValue:@"www.voland.com.cn" forHTTPHeaderField:@"Host"];
- [request setValue:[NSString stirngWithFormat@"%d",[content length]] forHTTPHeaderField:@"Content-Length"];
小結(jié):詳談iPhone中網(wǎng)絡(luò)請(qǐng)求的內(nèi)容介紹完了,希望本文對(duì)你有所幫助!