1

我正在尝试在 swiftNIO 之上使用 swift 创建摘要身份验证。最后我收到以下错误:操作无法完成。(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")
        }
    }
}

不幸的是,我没有找到其他方法来创建标题。我必须传递“”的值,因为响应头必须是(维基百科):“授权:”,然后是其余的。这是我生成的响应标头的示例: [("Authorization: Digest username=\"myuser\",realm=\"Testserver\",nonce=\"4F4L1eHYktYv6n7LR4s5yyL5uMiVgKSg\",uri=\" http://myurl \" ,响应=\"4bc3cdfc727bec9edebf6a55dac677a7\"", "")]

我不确定这个错误:是因为我的 headerresponse 还是因为我从主线程而不是我的委托内部创建了一个新请求,但 httpclient 始终是同一个实例。如果它位于标头响应上,似乎没有办法使用 async-http-client 将响应字符串直接写入标头。

谢谢阿诺德

4

0 回答 0