从服务器接收返回信息

楼下如果是妹子那就 2015-01-07 12:39:28
 NSURL *url = [NSURL URLWithString:@"http://192.168.1.100:8080/world/mini/api/httpservice/kiwi/world/worldAccountService/saveRegAccount.xhtml"];

NSString *post=[NSString stringWithFormat:@"number=%@&pwd=%@&code=%@",self.txtphoneNum.text,self.txtpassworld.text,self.txtVerificationNum.text];
NSLog(@"============post:%@",post);
NSData *Logininformation=[post dataUsingEncoding:NSUTF8StringEncoding];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc]initWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:10];
[request setHTTPMethod:@"POST"];
[request setHTTPBody:Logininformation];
NSURLConnection *connection = [[NSURLConnection alloc]initWithRequest:request delegate:self];

诸位我想实现一个账号登陆的demo,把代码中的三条数据传给服务器,然后服务器这边会根据我传的数据返回0或1,我根据这个判断注册是否成功,现在我不知道该怎么接收服务器传回得信息,并根据传回的信息做出判断,求教。
...全文
162 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
想清楚了,发送获取验证码时不用实现delegate,把请求抛出去就OK了。 搞定了。。
  • 打赏
  • 举报
回复
这是log图片:


引用 8 楼 zhangao0086 的回复:
didReceiveResponse没有被调用?


引用 8 楼 zhangao0086 的回复:
didReceiveResponse没有被调用?


调用了,如图,我现在的问题是我要向服务器进行两次交互,第一次是发送电话号码,第二次是发送账号密码和验证码,两次回调我不知道该怎么处理的,不知道怎么判断是第一次还是第二次服务器返回的数据处理,如果只是注册这个功能可以实现。这个该怎么些,求版主指点。
  • 打赏
  • 举报
回复
引用 6 楼 zhangao0086 的回复:
如果我没有看错的话,你的请求都没有发出去,缺少:
[connection start];
加上这个之后还是不行啊,和服务器连上了,但是并没有提示注册成功,也没有跳转。
这个主要是哪方面的原因,求版主指点。
junliang0824 2015-01-08
  • 打赏
  • 举报
回复
我最近也在研究这个问题,楼主做好后,demo能不能发我一个,QQ1828141617
Bannings 2015-01-08
  • 打赏
  • 举报
回复
didReceiveResponse没有被调用?
Bannings 2015-01-07
  • 打赏
  • 举报
回复
如果我没有看错的话,你的请求都没有发出去,缺少: [connection start];
  • 打赏
  • 举报
回复
引用 1 楼 zhangao0086 的回复:
]
- (IBAction)Submitclick:(id)sender
{
        [self saveRegAccount];
}
//服务器请求
-(void) saveRegAccount{
 
    NSURL *url = [NSURL URLWithString:@"http://192.168.1.100:8080/world/mini/api/httpservice/kiwi/world/worldAccountService/saveRegAccount.xhtml"];
    
    NSString *post=[NSString stringWithFormat:@"number=%@&pwd=%@&code=%@",self.txtphoneNum.text,self.txtpassworld.text,self.txtVerificationNum.text];
    NSLog(@"============post:%@",post);
    NSData *Logininformation=[post dataUsingEncoding:NSUTF8StringEncoding];
    NSMutableURLRequest *request = [[NSMutableURLRequest alloc]initWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:10];
    [request setHTTPMethod:@"POST"];
    [request setHTTPBody:Logininformation];
    NSURLConnection *connection = [[NSURLConnection alloc]initWithRequest:request delegate:self];
    //设置请求超时
    NSMutableURLRequest *requesttime=[NSMutableURLRequest  requestWithURL:url];
    requesttime.timeoutInterval=5.0;
    
}
//当服务器的数据加载完毕时就会调用
-(void)connectionDidFinishLoading:(NSURLConnection *)connection
{
    NSLog(@"服务器的数据加载完毕");
    //隐藏HUD
    [tooles removeHUD];
    
    //处理服务器返回的所有数据
    NSDictionary *dict=[NSJSONSerialization JSONObjectWithData:self.responseData options:NSJSONReadingMutableLeaves error:nil];
    //判断
    NSString *error=dict[@"-1"];
    NSString *error1=dict[@"1"];
    NSString *error2=dict[@"0"];
    if(error)
    {
        [Utils alertTitle:@"提示" message:@"动态口令错误" delegate:self cancelBtn:@"OK" otherBtnName:nil];
        
    }else if(error1)
    {
        [Utils alertTitle:@"提示" message:@"注册成功" delegate:self cancelBtn:@"OK" otherBtnName:nil];
        
    }else if(error2)
    {
        [Utils alertTitle:@"提示" message:@"注册失败,请重试..." delegate:self cancelBtn:@"OK" otherBtnName:nil];
    }else
    {
        NSLog(@"==================未知错误");
    }
    
}
#pragma mark- NSURLConnectionDataDelegate代理方法

//当接收到服务器的响应(连通了服务器)时会调用
-(void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
{
    NSLog(@"=====联通了服务器");
     self.responseData=[NSMutableData data];
 
}

 //当接收到服务器的数据时会调用
 -(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
    NSLog(@"接收到服务器的数据");
    //拼接数据
   [self.responseData appendData:data];
    NSLog(@"%lu---%@--",(unsigned long)self.responseData.length,[NSThread currentThread]);
}

 //请求错误(失败)的时候调用(请求超时\断网\没有网\,一般指客户端错误)

 -(void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error
{
 [tooles removeHUD];
   [Utils alertTitle:@"提示" message:@"网络繁忙,请重试..." delegate:self cancelBtn:@"OK" otherBtnName:nil];
}
这是我的最终代码,run没有问题,我点了注册后,却没有反应,麻烦版主给看看。
  • 打赏
  • 举报
回复
引用 2 楼 zhanglei5415 的回复:
-(void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
我需要在上述方法中哪一个接收到服务器端返回的数据,然后根据其返回的数据进行判断?
  • 打赏
  • 举报
回复
引用 1 楼 zhangao0086 的回复:
你已经设置了delegate,可以看看NSURLConnectionDataDelegate这个类,具体的,实现connection:didReceiveResponse:之类的就行了。
-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
主要的操作是在这个方法里面完成的吗?
ReyZhang 2015-01-07
  • 打赏
  • 举报
回复
使用NSURLConnection获取服务器端的返回,方法有两种 1:使用delegate ,在NSURLConnection的代理协议中有处理数据返回的方法 2. 使用block 方式
[NSURLConnection sendAsynchronousRequest:request  
                                   queue:[NSOperationQueue mainQueue] 
                       completionHandler:^(NSURLResponse *response,NSData *data,NSError *error) { 
                id res = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];
}
Bannings 2015-01-07
  • 打赏
  • 举报
回复
你已经设置了delegate,可以看看NSURLConnectionDataDelegate这个类,具体的,实现connection:didReceiveResponse:之类的就行了。
Redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。 Redis的出现,很大程度补偿了memcached这类key/value存储的不足,在部分场合可以对关系数据库起到很好的补充作用。它提供了Java,C/C++,C#,PHP,JavaScript,Perl,Object-C,Python,Ruby,Erlang等客户端,使用很方便。 Redis支持主从同步。数据可以从主服务器向任意数量的从服务器上同步,从服务器可以是关联其他从服务器的主服务器。这使得Redis可执行单层树复制。存盘可以有意无意的对数据进行写操作。由于完全实现了发布/订阅机制,使得从数据库在任何地方同步树时,可订阅一个频道并接收服务器完整的消息发布记录。同步对读取操作的可扩展性和数据冗余很有帮助。   本课程主要讲解以下内容:1. Redis的基本使用2. Redis数据库的数据类型3. Redis数据库数据管理4. Redis的主从复制5. Redis数据库的持久性6. Redis的高可靠性和集群7. Redis的优化和性能测试8. Redis服务器的维护和管理9. Redis服务器的常见问题排错 

29,030

社区成员

发帖
与我相关
我的任务
社区描述
主要讨论与iOS相关的软件和技术
社区管理员
  • iOS
  • 大熊猫侯佩
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧