ios android 同步请求,IOS 同步异步请求

同步请求步骤:

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:]

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。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值