NSURLSession:在没有身份验证的情况下可以使用NSURLSession(Swift)
我想要一个API密钥和身份验证用户。我在控制台中收到消息“会话URL任务成功:HTTP 200”。不幸的是,我总是收到页面“{”message:”的消息。此请求“}”的授权已被拒绝。我花了几个小时寻找并找到了解决办法。我请求你的帮助。这是我的密码:NSURLSession:在没有身份验证的情况下可以使用NSURLSession(Swift),swift,session,request,authorization,nsurlsession,Swift,Session,Request,Authorization,Nsurlsession,我想要一个API密钥和身份验证用户。我在控制台中收到消息“会话URL任务成功:HTTP 200”。不幸的是,我总是收到页面“{”message:”的消息。此请求“}”的授权已被拒绝。我花了几个小时寻找并找到了解决办法。我请求你的帮助。这是我的密码: let sessionConfig = NSURLSessionConfiguration.defaultSessionConfiguration() let session = NSURLSession(configuratio
let sessionConfig = NSURLSessionConfiguration.defaultSessionConfiguration()
let session = NSURLSession(configuration: sessionConfig, delegate: nil, delegateQueue: nil)
let URL = NSURL(string: "https://api.testhomepage.com/api/contact")
let request = NSMutableURLRequest(URL: URL!)
// Headers
request.addValue("ARRAffinity=259dfjiehfs315d7249df8805c7895a98c4cbd3327ffdcb82aaa16317f2e6", forHTTPHeaderField: "Cookie")
request.addValue("Basic dWVzQGp1bGl0ZafdgfvcfgeDcyZS1hZWEyLTQzYmVmMjFhNDMxZQ==", forHTTPHeaderField: "Authorization")
request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.addValue("api.testhomepage.com", forHTTPHeaderField: "Host")
request.addValue("//api.testhomepage.com/api/contact: POST", forHTTPHeaderField: "https")
request.HTTPMethod = "GET"
// JSON Body
/* Start a new Task */
let task = session.dataTaskWithRequest(request) { (data: NSData?, response: NSURLResponse?, error: NSError?) -> Void in
if (error == nil) {
// Success
let statusCode = (response as! NSHTTPURLResponse).statusCode
print("URL Session Task Succeeded: HTTP \(statusCode)")
let myURLString = "https://api.testhomepage.com/api/contact"
if let myURL = NSURL(string: myURLString) {
var error: NSError?
let myhtml = try! NSString(contentsOfURL: myURL, encoding: NSUTF8StringEncoding)
if let error = error {
print("Error : \(error)")
} else {
print("HTML : \(myhtml)")
}
} else {
print("Error: \(myURLString) doesn't seem to be a valid URL")
}
}
else {
// Failure
print("URL Session Task Failed: %@", error!.localizedDescription);
}
}
task.resume()
}
这在控制台中:
URL会话任务成功:HTTP 200
HTML:{“Message”:“此请求的授权已被拒绝。”}使用request.setvalue(“,forHTTPHeaderField:”)
而不是request.addValue(“,forHTTPHeaderField:”)
您不能自己填充身份验证头,句点。该标头由URL加载系统拥有,并根据用户密钥链中的凭据填充
通过阅读的“身份验证”一章,您可以了解如何进行身份验证。请注意,这些示例是针对NSURLConnection的,但本文的其余部分适用于两者
或者,您可以将凭据作为Internet密码项存储在密钥链中,如中所述。我看到Basic和dwv之间有一个空格。。。假设有下划线或其他东西吗?如果没有基本的I get 500错误,中间没有任何东西。有了空间,我获得了200个连接Succeededrequest.addValue,我将其替换为request.setValue。一切都没有改变。