iOS网站客户端post验证登录账号和密码

慢慢来比较快 2014-06-23 06:01:08
我现在在给我们学院网站做一个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字符串呢
...全文
839 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
慢慢来比较快 2014-06-24
  • 打赏
  • 举报
回复
引用 1 楼 rollrock1987 的回复:
你的错误在哪里我不是很清楚 我以前做过的 一个跟你类似的 我用的是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"); } 这个是发起请求的代码,省下的就是回调了,你可以试试看
这些方法我都知道的。我目前情况是接受到的代码是登录界面的html的代码。就是我最上面url的html代码,我想接受到 抓包模拟的那个返回的response。这样我好判断是否正确登录。
rollrock1987 2014-06-23
  • 打赏
  • 举报
回复
你的错误在哪里我不是很清楚 我以前做过的 一个跟你类似的 我用的是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"); } 这个是发起请求的代码,省下的就是回调了,你可以试试看

29,027

社区成员

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

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