我现在在给我们学院网站做一个iOS客户端。需要验证用户登录的信息。我现在遇到的问题是如何验证登录的账号和密码是否正确。我们学院的登录网站是:  http://mis.sse.ustc.edu.cn/default.aspx先看一下http的抓包信息。这里是在网站上上登录post过去的头信息。密码是故意输入错误的。  然后看response  这里会告诉我错误的信息。我现在是想获得这个response 。来检查用户是否输入正确的账号和密码。  我的代码如下:    //这里是提交账号密码,登入系统    ASIFormDataRequest *fr = [ASIFormDataRequest requestWithURL:[NSURL URLWithString:@"http://enroll.sse.ustc.edu.cn/sseweb/Login.aspx"]];    [fr setUseCookiePersistence:YES];    [fr setUseSessionPersistence:YES];    [fr setPostValue:@"sa1222619" forKey:@"winLogin$txtUserLoginID"];    [fr setPostValue:@"230016" forKey:@"winLogin$sfLogin$txtPassword"];    [fr setPostValue:@"false" forKey:@"winLogin_Hidden"];        [fr setPostValue:@"winLogin$sfLogin$ContentPanel1$btnLogin" forKey:@"__EVENTTARGET"];    [fr setPostValue:@"true" forKey:@"rememberMe"];    [fr setPostValue:@"1" forKey:@"save_login"];    [fr setDelegate:self];这里是post提交正确的账号和密码 然后在delegate方法中获取request的responstring。-(void)requestFinished:(ASIHTTPRequest *)request{          NSData *data = [request responseData];    NSString *dataString = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];       NSLog(@"登入请求成功:%@ ",dataString);    NSDictionary *headersDic = [request responseHeaders];    NSLog(@"%@",headersDic);    //NSString *setCookie = [headersDic objectForKey:@"Set-Cookie"];//    NSString *jsessionId = [setCookie substringWithRange:NSMakeRange(11, 32)];    NSString *jsessionId = @"274C1F14A600EACF11FF49F5970A3C56.tomcat1";    //    NSLog(@"jsessionId=====>>> %@",jsessionId);        //把jsessionId存本地    NSUserDefaults *jId = [NSUserDefaults standardUserDefaults];    [jId setValue:jsessionId forKey:@"jsessionId"];            //NSLog(@"网页 ==>>\n%@",[request responseString]);        }我遇到的问题是 返回的内容一直是登录界面的html代码。  求问我如何获得上面抓包中的response字符串呢

解决方案 »

  1.   

    你的错误在哪里我不是很清楚  
    我以前做过的  一个跟你类似的   我用的是wireshark抓得包
    然后IOS断的代码  大概如下   NSURL * url = [NSURL URLWithString:@"http://www.sgict.com.cn:7001/query/search/comm/contgoods.jsp"];
        NSMutableURLRequest * req = [[[NSMutableURLRequest alloc]initWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:100]autorelease];
        [req setHTTPMethod:@"POST"];
        
        NSString * strData = [NSString stringWithFormat:@"billno=%@&choice=2&Submit22.x=17&Submit22.y=19",_xhxxcxField.text];
        
        NSData * data = [ strData dataUsingEncoding:NSUTF8StringEncoding];
        
        [req setHTTPBody:data];
        
        NSURLConnection * conn = [[[NSURLConnection alloc]initWithRequest:req delegate:self]autorelease];
        if( conn == nil )
        {
            NSLog(@"conn create error");
        }这个是发起请求的代码,省下的就是回调了,你可以试试看
      

  2.   


    这些方法我都知道的。我目前情况是接受到的代码是登录界面的html的代码。就是我最上面url的html代码,我想接受到  抓包模拟的那个返回的response。这样我好判断是否正确登录。