【发布时间】: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。这个版本的客户端有时会更好。