我现在在给我们学院网站做一个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字符串呢
解决方案 »
- XMPP for IOS 客户端如何启用数据压缩
- 【请教】想在mac上用emacs,哪位高手知道如何在mac上创建emacs的配置文件?
- 非水果笔记本装水果操作系统的疑问
- 国内iphone/ipad主流用的是哪个版本的ios?
- Main.storyboard 文件的源代码在哪儿啊?先感谢前辈!
- 为什么不释放内存?
- 请指点!
- 我使用FMDB来操作数据库,经常会被锁了,而且我使用的单例模式同样发生锁的情况发生,大家能帮我解答一下好吗,
- ios开发收回键盘使用了第三方的IQKeyboardManager 有时候会出现黑屏???怎么搞啊?求大神啊
- 微信和微博登入 如何实现
- ios 这样的网格视图怎么实现
- ios开发上线初体验
我以前做过的 一个跟你类似的 我用的是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。这样我好判断是否正确登录。