Swift Digest Authentication асинхронного HTTP-клиент

голоса
0

Я пытаюсь создать аутентификацию дайджеста, используя быстрые на вершине swiftNIO. В конце концов, я получаю следующее сообщение об ошибке: Операция не может быть завершена. (Ошибка NIO.NIOConnectionError 1.)

Вот мой способ сделать:

// in the delegate I create my authorizationHeader
let authorizationHeader =  try httpClient.execute(request: digestRequest , delegate: delegate).wait()

затем в главном потоке я нахожусь сделать следующее:

var request = try HTTPClient.Request(url: url, method: .GET)

request.headers.add(name: Authorization: \(authorizationHeader.description) , value: )
print (request.headers.description)
httpClient.execute(request: request).whenComplete { result in
    switch result {
    case .failure(let error):
        print (error.localizedDescription)
    case .success(let response):
        if response.status == .ok {
            print (response.status)
        } else {
            print (error in response)
        }
    }
}

К сожалению , я не нашел никакого другого способа для создания заголовка. Я должен был передать значение «», потому что заголовок ответа должен быть (Википедия): «Разрешение:» , а затем все остальные. Вот пример моего genarated заголовка ответа: [( Авторизация: Digest имя пользователя = \ MyUser \ область = \ TestServer \, одноразовое значение = \ 4F4L1eHYktYv6n7LR4s5yyL5uMiVgKSg \, Ури = \ HTTP: // myurl \» , ответ = \ 4bc3cdfc727bec9edebf6a55dac677a7 \», )]

Я не уверен, что об ошибке: это из-за моего headerresponse или потому, что я создаю новый запрос от основного потока, а не внутри моего делегата, но HttpClient всегда тот же экземпляр. Если он лежит на headerresponse, кажется, что не существует никакого способа, чтобы написать направить строку ответа в заголовок, используя асинхронный-HTTP-клиент.

Благодаря Arnold

Задан 13/01/2020 в 21:52
источник пользователем
На других языках...                            

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more