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)
有什么帮助吗?很有魅力!你救了我一天