Swift 将标题添加到URLSessionWebSocket

Swift 将标题添加到URLSessionWebSocket,swift,urlsessionwebsockettask,Swift,Urlsessionwebsockettask,我正在使用URLSessionWebSocket了解更多信息。 我用这门课 我的问题是,如何向其添加身份验证头?(内容类型,账户授权和子授权) 多谢各位 lass WebSocketConnector : NSObject { var didOpenConnection : (()->())? var didCloseConnection : (()->())? var didReceiveMessage : ((_ message : String

我正在使用
URLSessionWebSocket
了解更多信息。 我用这门课

我的问题是,如何向其添加身份验证头?(
内容类型
账户授权
子授权

多谢各位

lass WebSocketConnector : NSObject {
    
    var didOpenConnection : (()->())?
    var didCloseConnection : (()->())?
    var didReceiveMessage : ((_ message : String)->())?
    var didReceiveData : ((_ message : Data)->())?
    var didReceiveError : ((_ error : Error)->())?

    
    
    var urlSession : URLSession!
    var operationQueue : OperationQueue = OperationQueue()
    var socket : URLSessionWebSocketTask!
    
    
    init(withSocketURL url : URL){
        super.init()
        urlSession  = URLSession(configuration: .default, delegate: self, delegateQueue: operationQueue)
        socket = urlSession.webSocketTask(with: url)
    }
    
    private func addListener(){
        
        socket.receive {[weak self] (result) in
            switch result {
            case .success(let response):
                switch response {
                    
                case .data(let data):
                    self?.didReceiveData?(data)

                case .string(let message):
                    self?.didReceiveMessage?(message)
                @unknown default:
                    break
                }
            case .failure(let error):
                self?.didReceiveError?(error)
            }
            self?.addListener()

        }
    }
}

extension WebSocketConnector : WebSocketProtocol {
    
    func establishConnection(){
        socket.resume()
        addListener()
    }
    
    func disconnect(){
        socket.cancel(with: .goingAway, reason: nil)
    }
    
    
    func send(message: String) {
        socket.send(URLSessionWebSocketTask.Message.string(message)) {[weak self] (error) in
            if let error = error {
                self?.didReceiveError?(error)
            }
        }
    }
    
    func send(data: Data) {
        socket.send(URLSessionWebSocketTask.Message.data(data)) {[weak self] (error) in
            if let error = error {
                self?.didReceiveError?(error)
            }
        }
    }
    
}

extension WebSocketConnector : URLSessionWebSocketDelegate {
    
    func urlSession(_ session: URLSession, webSocketTask: URLSessionWebSocketTask, didOpenWithProtocol protocol: String?) {
        didOpenConnection?()
    }
    
    func urlSession(_ session: URLSession, webSocketTask: URLSessionWebSocketTask, didCloseWith closeCode: URLSessionWebSocketTask.CloseCode, reason: Data?) {
        didCloseConnection?()
    }
}

只需使用URL请求程序包装您的URL:

var-request=URLRequest(url:url)
request.addValue(“xafq”,用于HttpHeaderField:“授权”)
并致电:

URLSession.shared.webSocketTask(with: request)

有什么帮助吗?很有魅力!你救了我一天