[转]同步与异步调用http请求 iphone开发

异步: 

NSMutableData* buf = [[NSMutableData alloc] initWithLength:0];

NSURLConnection* connection = [[NSURLConnection alloc] initWithRequest:req delegate:self];

//  收到响应时, 会触发
- (void)connection:(NSURLConnection *)aConnection didReceiveResponse:(NSURLResponse *)aResponse;
//  你可以在里面判断返回结果, 或者处理返回的http头中的信息

//  每收到一次数据, 会调用一次
- (void)connection:(NSURLConnection *)aConn didReceiveData:(NSData *)data;
//  因此一般来说,是
- (void)connection:(NSURLConnection *)aConn didReceiveData:(NSData *)data
{
[buf appendData:data];
}
//  当然buffer就是前面initWithRequest时同时声明的.

//  网络错误时触发
- (void)connection:(NSURLConnection *)aConn didFailWithError:(NSError *)error;

//  全部数据接收完毕时触发
- (void)connectionDidFinishLoading:(NSURLConnection *)aConn;
第二段是同步请求
,~
//  初始化请求
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];         
//  设置URL
[request setURL:[NSURL URLWithString:urlStr]];
//  设置HTTP方法
[request setHTTPMethod:@"GET"];
//  发 送同步请求, 这里得returnData就是返回得数据了
NSData *returnData = [NSURLConnection sendSynchronousRequest:request 
returningResponse:nil error:nil]; 
//  释放对象
[request release];

 

你可能感兴趣的:([转]同步与异步调用http请求 iphone开发)