问题描述
我正在使用JSONDecoder和URL会话从API解码JSON。效果很好
URLSession.shared.dataTask(with: request) { (data,theResponse,error)
在“ theResponse”(我没有解码)中,最后一个键是“ X-RateLimit-requests-Remaining”:
<NSHTTPURLResponse: 0x6000033ec300> { URL: myUrl } { Status Code: 200,Headers {
Connection = (
"keep-alive"
);
"content-encoding" = (
gzip
);
"Content-Length" = (
1913
);
"Content-Type" = (
"application/json"
);
Date = (
"Mon,28 Sep 2020 14:34:35 GMT"
);
Server = (
"RapidAPI-1.2.6"
);
"X-RapidAPI-Region" = (
"AWS - eu-central-1"
);
"X-RapidAPI-Version" = (
"1.2.6"
);
"X-RateLimit-requests-Limit" = (
100
);
"X-RateLimit-requests-Remaining" = (
68
);
} }
由于上述不是JSON,是否可以将这些值解码为一种类型,然后将其用于速率限制?
例如,当“ X-RateLimit-requests-Remaining”达到10时,在我的应用中限制请求
谢谢
解决方法
这些已为您解码成[AnyHashable: Any]
字典。要获取此特定文件,您需要按照以下方式进行检查:
if let remaining = theResponse.allHeaderFields["X-RateLimit-requests-Remaining"]
as? Int { ... }