Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
NSURLSession:在没有身份验证的情况下可以使用NSURLSession(Swift)_Swift_Session_Request_Authorization_Nsurlsession - Fatal编程技术网

NSURLSession:在没有身份验证的情况下可以使用NSURLSession(Swift)

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

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

    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。一切都没有改变。