【问题标题】:Empty Body in Vapor Client GET ResponseVapor 客户端 GET 响应中的空主体
【发布时间】:2017-01-16 00:29:41
【问题描述】:

我正在尝试连接到 Bamboo HR's API,我已经设法与 curl 和 Swift Foundation 的 URLRequest/URLSession(以及较旧的 Express node.js 应用程序)一起工作。

但是,当尝试通过 .get() 方法使用 Vapor's client 时,我从 BambooHR 获得了成功的 200 响应 - 但响应的 .body 为空。

这里是sn-p的代码:

key 和 {myDomain} 在示例中是占位符

let encodedKey = "\(key):x".utf8.base64String
let directoryRootUrl = "https://api.bamboohr.com/api/gateway.php/{myDomain}/v1/employees/directory"

let response = try drop.client.get(
    directoryRootURL,
    headers: [
        "Accept": "application/json",
        "Authorization": "Basic \(encodedKey)",
        "Host": "api.bamboohr.com"
    ])

当我执行print(response) 时,会显示以下内容:

Response
- HTTP/1.0 200 OK
- Headers:
    Connection: close
    Vary: User-Agent
    Server: Apache
    Content-Security-Policy:  {...}
    Date: Mon, 16 Jan 2017 00:26:31 GMT
    Content-Type: application/json
    X-Content-Type-Options: nosniff
- Body:

我想知道我是否对 Vapor 做错了什么,或者它是否是一个错误。

【问题讨论】:

  • 我在尝试与飞利浦 Hue 桥接器通信时看到此问题。网桥上的 POST 请求也是如此。但是,如果我对 google.com 执行 GET 操作,它会起作用。我还没有为此提出问题,因为我认为它可能仅限于该硬件,但您的问题似乎是一样的。
  • 创建Droplet后,尝试设置drop.client = FoundationClient.self。这个版本的客户端有时会更好。

标签: swift3 vapor


【解决方案1】:

喜欢tobygriffin 建议,设置:

drop.client = FoundationClient.self

创建Droplet 后工作。

【讨论】:

    猜你喜欢
    • 2022-11-23
    • 2017-01-19
    • 2015-02-25
    • 1970-01-01
    • 1970-01-01
    • 2013-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多