swift Playground上的Swift 3.0 HTTP基本身份验证

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了swift Playground上的Swift 3.0 HTTP基本身份验证相关的知识,希望对你有一定的参考价值。

import Foundation
import PlaygroundSupport

PlaygroundPage.current.needsIndefiniteExecution = true

func authenticate () {
    
    //Credentials
    let username = "USERNAME"
    let password = "PASSWORD"
    let loginString = "\(username):\(password)"
    let loginData = loginString.data(using: String.Encoding.utf8)!
    let base64LoginString = loginData.base64EncodedString()
    
    //Request
    let url = URL(string: "https://api.github.com")!
    var request = URLRequest(url: url)
    request.httpMethod = "GET"
    request.setValue("Basic \(base64LoginString)", forHTTPHeaderField: "Authorization")
    
    //Fix "Failed to obtain sandbox extension"
    URLCache.shared = URLCache(memoryCapacity: 0, diskCapacity: 0, diskPath: nil)
    
    //Setup Session
    let task = URLSession.shared.dataTask(with: request) { (data, response, error) in
        guard let responseData = data,
            error == nil,
            let jsonObject = try? JSONSerialization.jsonObject(with: responseData, options: []) else {
            print("Error")
            return
        }
        
        if let json = jsonObject as? [String : Any] {
            print(json)
        }
        
        PlaygroundPage.current.finishExecution()
    }
    
    task.resume()
}

authenticate()

以上是关于swift Playground上的Swift 3.0 HTTP基本身份验证的主要内容,如果未能解决你的问题,请参考以下文章