无法解码vapor swift post请求的客户端响应

无法解码vapor swift post请求的客户端响应,swift,vapor,Swift,Vapor,我正在使用vapor swift客户端发出post请求。我的代码如下所示 \u请求客户端发布(“https://oauth2.googleapis.com/token“{req in 尝试请求内容编码([ “代码”:代码, “授权类型”:“授权代码”, “重定向uri”:http://localhost:8080/googleAuth" ]) }.FlatMapSprowing{中的响应 尝试response.content.decode(AccessToken.self) }.map{json

我正在使用vapor swift客户端发出post请求。我的代码如下所示

\u请求客户端发布(“https://oauth2.googleapis.com/token“{req in
尝试请求内容编码([
“代码”:代码,
“授权类型”:“授权代码”,
“重定向uri”:http://localhost:8080/googleAuth"
])
}.FlatMapSprowing{中的响应
尝试response.content.decode(AccessToken.self)
}.map{json在
打印(json)
}
FlatMapSprowing
返回完整的http响应,但当我尝试使用
.map
对其进行解码时,得到的是一个零

这是我从Flatmap得到的回应

HTTP/1.1 200 OK
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Expires: Mon, 01 Jan 1990 00:00:00 GMT
Pragma: no-cache
Date: Fri, 23 Apr 2021 16:03:57 GMT
Content-Type: application/json; charset=utf-8
Vary: X-Origin
Vary: Referer
Server: scaffolding on HTTPServer2
X-XSS-Protection: 0
X-Frame-Options: SAMEORIGIN
X-Content-Type-Options: nosniff
Alt-Svc: h3-29=":443"; ma=2592000,h3-T051=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43"
Accept-Ranges: none
Vary: Origin,Accept-Encoding
Transfer-Encoding: chunked

{
  "access_token": "...",
  "expires_in": 3599,
  "refresh_token": "...",
  "scope": "...",
  "token_type": "Bearer",
  "id_token": "..."
}

但是当我尝试用这个模型解码它时,我得到了一个空的var

import Fluent
import Vapor

struct AccessToken: Content {
    var access_token: String
    var expires_in: String?
    var refresh_token: String?
    var scope: String?
    var token_type: String?
    var id_token: String?
}

正如Nick所说,模型在
expires\u in:String?
中有一个错误,我解码了json,将我的模型更改为:

import Fluent
import Vapor

struct AccessToken: Content {
    var access_token: String?
    var expires_in: Int?
    var refresh_token: String?
    var scope: String?
    var token_type: String?
    var id_token: String?
}

对于这段代码,nil似乎是不可能的,它应该抛出并中止。我会检查响应体,以确保我收到的{“访问令牌”:“ya29.a0AfH6”,“expires_in”:3599,“刷新令牌”:“…”,“范围”:“…”,“令牌类型”:“承载者”,“id_令牌”:“…”}我正在使用此结构对其进行解码{var-access\u-token:String?var-expires\u-in:String?var-refresh\u-token:String?var-scope:String?var-token\u-type:String?var-id\u-token:String?}我刚刚更新了我的问题,我应用了你的建议,但什么也没发生。你能帮我吗?不确定是否有用,但尝试将
中的
expires\u更改为
Int
而不是
字符串?