同步请求步骤:
NSIntegerpage =1;
NSIntegercount =10;
NSString*string=[NSStringstringWithFormat:@"http://192.168.88.8/sns/my/user_list.php?page=%d&number=%d",page,count];
//构造url
NSURL*url = [NSURLURLWithString:string];
//同步下载url里面的内容放在jsonStr中
NSString*jsonStr = [NSStringstringWithContentsOfURL:urlencoding:NSUTF8StringEncodingerror:nil];
NSLog(@"%@",jsonStr);
异步请求(get请求)
NSMutableData*downloadData;//用来保存下载的二进制数据
NSString*string=[NSStringstringWithFormat:@"http://192.168.88.8/sns/my/user_list.php?page=%d&number=%d",page,count];
//构造url
NSURL*url = [NSURLURLWithString:string];
//构造请求类对象
NSURLRequest*request=[NSURLRequestrequestWithURL:url];
//创建连接类对象,此方式异步方法,一旦对象创建,就开始了数据下载,通过协议方法回调
NSURLConnection*httpConnection=[[NSURLConnectionalloc]initWithRequest:requestdelegate:self];
异步请求(post请求)
//设置请求的参数
NSString*post = [[NSStringalloc]initWithFormat:@"page=%d&number=%d",page,count];
//转换成NSData格式
NSData*postData = [postdataUsingEncoding:NSASCIIStringEncodingallowLossyConversion:YES];
NSString*string = [NSStringstringWithFormat:@"http://192.168.88.8/sns/my/user_list.php"];
//构造url
NSURL*url = [NSURLURLWithString:string];
//构造请求类对象(用NSMutableURLRequest实例可以对请求信息重新设置)
NSMutableURLRequest*request=[[NSMutableURLRequestalloc]init];
[requestsetURL:url];
[requestsetHTTPMethod:@"Post"];//设置请求方式
[requestsetTimeoutInterval:60];//设置超时时间
[requestsetHTTPBody:postData];//设置请求参数
//创建连接类对象,此方式异步方法,一旦对象创建,就开始了数据下载,通过协议方法回调
NSURLConnection*httpConnection=[[NSURLConnectionalloc]initWithRequest:requestdelegate:self];
//回调方法
//收到服务器的响应
-(void)connection:(NSURLConnection*)connection didReceiveResponse:(NSURLResponse*)response
{
//打印状态码
//[response isMemberOfClass:<#(Class)#>]
if([responseisKindOfClass:[NSHTTPURLResponseclass]]) {
NSHTTPURLResponse*newREsponse=(NSHTTPURLResponse*)response;
NSLog(@"状态码:%d",[newREsponsestatusCode]);
}
//收到新回应清空旧数据
[downloadDatasetLength:0];
}
//开始接收数据,此方法多次调用
-(void)connection:(NSURLConnection*)connection didReceiveData:(NSData*)data
{
//将每次接收的数据保存
[downloadDataappendData:data];
}
//数据下载完成
-(void)connectionDidFinishLoading:(NSURLConnection*)connection{
//请求下载出来的数据 UIlabel 展现出来
NSString*dataString = [[NSStringalloc]initWithData:downloadDataencoding:NSUTF8StringEncoding];
//请求失败的协议方法
-(void)connection:(NSURLConnection*)connection didFailWithError:(NSError*)error
{
NSLog(@"请求失败");
}
POST
客户端发起请求,服务端给响应。
GET和POST响应是一样的,请求不一样。
响应分响应头和响应体两部分。
响应头: status 200Content - Type : image/pngContent - Length :1000011
GET请求,只有请求头。www.baidu.com/a.php?a=1&b=2。请求数据一般用GET。
POST请求,既有请求头(Content-Type:......Content-Length:....)www.baidu.com/a.php,也有请求体?a=1&b=2。上传一般用POST。