詳談iPhone中網絡請求
詳談iPhone中網絡請求是本文要介紹的內容,主要介紹了網絡編程的相關內容,很詳細的介紹了如何獲得或者發送網絡請求。不多說,我們先來看詳細內容。
一、簡單的get請求
網絡編程是我們經常遇到的,在IPhone中,SDK提供了良好的接口,主要使用的類有NSURL,NSMutableURLRequest,NSURLConnection等等。一般情況下建議使用異步接收數據的方式來請求網絡連接,這種網絡連接分為兩步,第一步是新建NSURLConnection對象后,直接調用它的start方法來連接網絡。第二步是使用delegate方式來接收數據,這里給一個常用的寫法:
網絡請求部分:
- 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];//開始連接網絡
- [aUrlConnection release];
- [[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:YES];
接收數據部分,接收到的數據主要是在這里處理
- - (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response {
- NSLog(@"接收完響應:%@",response);
- }
- - (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
- NSLog(@"接收完數據:");
- }
- - (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error {
- NSLog(@"數據接收錯誤:%@",error);
- }
- - (void)connectionDidFinishLoading:(NSURLConnection *)connection {
- NSLog(@"連接完成:%@",connection);
- [[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:NO];
- }
二、Post請求
進行post請求,主要是設置好NSMutableURLRequest對象,在get請求中,我們都使用了默認的,實際這些request內容都可以設置的。設置好后,其它與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"];
小結:詳談iPhone中網絡請求的內容介紹完了,希望本文對你有所幫助!