【发布时间】:2015-10-13 18:08:34
【问题描述】:
我从 HTTP 代理客户端和NSURLRequest + NSURLConnection 发送相同的 HTTP 消息,并得到不同的结果。这是一个身份验证请求。接受来自 HTTP 代理的身份验证请求,不接受来自应用程序的发送。为什么?接受意味着重定向后的 HTML 将不包含 Oops 子字符串。
let url = NSURL(string: "http://www.swisshttp.weact.ch/en/user/login")
let request = NSMutableURLRequest(URL: url)
request.HTTPMethod = "POST"
request.setValue("application/x-www-form-urlencoded", forHTTPHeaderField: "Content-Type")
let email2 = (viewController!.email.text as NSString).stringByReplacingOccurrencesOfString("@", withString: "%40")
let str = "name=\(email2)&pass=\(viewController!.password.text)&form_id=user_login" as NSString
let d = str.dataUsingEncoding(NSUTF8StringEncoding)
if let d2 = d {
request.HTTPBody = d2
let urlConnection = NSURLConnection(request: request, delegate: self)
}
更新
我已将@teamnorge 下面的代码放入操场和一个空的单视图应用程序项目中。项目中返回的 HTML 包含 Oops 子字符串,操场中使用的代码不包含它,知道发生了什么,为什么相同的请求会产生不同的 HTML 结果?我也收到了来自 iOS 设备和模拟器的 failed 消息。
更新
已删除 NSURLRequest 缓存,如推荐的 here,但仍无法按预期工作。还有here。
更新
尝试删除所有凭据,例如 here,但没有帮助,没有找到凭据。
【问题讨论】:
-
如果我是你,我可能会从屏幕截图中删除你的电子邮件/密码
-
有人可能会测试身份验证请求,这是故意的
-
感谢您的帮助,问题有所不同,调用了两个不同的 url :-(
标签: ios caching nsurlconnection nsurlrequest