swift - NSURLSession:无需身份验证即可 NSURLSession ( Swift )

标签 swift session request authorization nsurlsession

我想要一个 API key 并验证用户身份。我在控制台中看到消息“ session URL 任务成功:HTTP 200”。不幸的是,我总是收到页面“{”消息“:”的消息。此请求“}”的授权已被拒绝。我花了几个小时寻找并找到了解决方案。我请求你的帮助。这是我的代码:

    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 session 任务成功:HTTP 200 HTML : {"Message":"此请求的授权已被拒绝。"}

最佳答案

使用 request.setvalue("", forHTTPHeaderField: "") 而不是 request.addValue("", forHTTPHeaderField: "")

关于swift - NSURLSession:无需身份验证即可 NSURLSession ( Swift ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33966263/

相关文章:

ios - 无法在 UI 表格 View 自定义单元格中插入分隔符

ios - 导航到不同的 ViewController 时 BLE 外设断开连接

django - 在 Django 单元测试中使用 session 对象

php - 当 session ID 已知但无法启动 session 时删除 session 变量

android - 如何通过改造发出 CURL 请求?

python - 如何使用汤从页面中提取列中的数据

xcode - 快速浏览一下 Swift 中的 NSView

arrays - 从数组索引列表创建子数组

javascript - 如何显示足够智能的 session 超时警告来处理多个打开的浏览器或选项卡

javascript - Testcafe:如何测试请求的POST参数