如果您在浏览器中打开URL(https://myapp.com/auth/login),您将收到一个表单输入用户名和密码。我想我可以在请求的帖子数据中设置登录凭据并提交数据。
该网站使用httpS进行登录,以便凭证不会通过互联网以纯文本形式传递。
如何使安全的httpS连接传递凭据?这会记得我登录了以后的要求吗?这样做最好的方法是什么?
解决方法 进一步更新,2013年10月虽然在写这个答案的时候,ASIhttpRequest得到了广泛的支持,但事实并非如此。不建议使用新项目,而是直接使用NSURLConnection,或者使用AFNetworking。
使用AFNetworking,有一个[httpClIEnt setAuthorizationheaderWithUsername:username password:password]; http身份验证的方法,并且创建POST样式表单同样容易 – 请参阅AFNetworking Post Request。
原来的答案:
很多人使用ASIhttpRequest类来处理http& https在iPhone / iPad上,因为它具有很多有用的功能,使用内置的类实现是困难或耗时的:
http://allseeing-i.com/ASIHTTPRequest/
从最简单的层面开始,您可以从以下开始:
NSURL *url = [NSURL URLWithString:@"http://allseeing-i.com"]; ASIhttpRequest *request = [ASIhttpRequest requestWithURL:url]; [request startSynchronous]; NSError *error = [request error]; if (!error) { Nsstring *response = [request responseString]; NSLog(@"response = %@",response); }
如果您使用http身份验证,ASIhttpRequest将自动提示用户输入用户名和密码。
如果您使用某种其他形式的身份验证,您可能需要自己从用户那里请求用户名和密码,并将其作为POST值或自定义的http标头提交,然后响应可能包含JsON中的令牌或XML响应,或者可以设置一个cookie。
如果您添加关于认证方案如何工作的更多细节,我可以更具体一些。
更新
根据更新,要模拟POST表单,您只需要添加以下行:
[request addPostValue:usernameString forKey:@"username"];[request addPostValue:passwordString forKey:@"password"];
您还需要更改创建请求的方式,而不是:
ASIhttpRequest *request = [ASIhttpRequest requestWithURL:url];
做:
ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];
(我也忘了在上面提到,我之前提到的代码是使用同步请求,所以你想用异步方式替换它,以避免在验证它的工作时阻止UI。)
这里有一个用于iphone的JsON框架:
http://code.google.com/p/json-framework/
这对我来说很好,并且易于与ASIhttpRequest一起使用。
总结以上是内存溢出为你收集整理的iphone – iOS:如何使安全的HTTPS连接传递凭据?全部内容,希望文章能够帮你解决iphone – iOS:如何使安全的HTTPS连接传递凭据?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)