【发布时间】:2019-11-08 19:13:54
【问题描述】:
所以我使用 moya 创建了一个 API 请求到 openweatherAPI。现在 Postman 的返回似乎没问题,但是 X-code 上的 API 调用返回 401: Invalid API key
我已经尝试了大多数方法来查看实际出了什么问题。但我似乎没有找到答案。
import Foundation
import Moya
import UIKit
enum WeatherAPI {
case showCurrentWeather(cityName: String)
case showForcasedWeather(cityName: String)
}
extension WeatherAPI: TargetType {
var task: Task {
switch self {
case .showCurrentWeather(cityName: let cityName):
let params = ["q":cityName , "APPID": Constants.WEATHER_API_KEY]
return .requestParameters(parameters: params, encoding: JSONEncoding.default)
case .showForcasedWeather(cityName: let cityName):
let params = ["q":cityName , "APPID": Constants.WEATHER_API_KEY]
return .requestParameters(parameters: params, encoding: JSONEncoding.default)
}
}
var baseURL: URL {
return URL(string: "https://api.openweathermap.org/data/2.5")!
}
var path: String {
switch self {
case .showCurrentWeather:
return "/weather"
case .showForcasedWeather:
return "/forecast"
}
}
var method: Moya.Method {
switch self {
case .showCurrentWeather:
return .get
case .showForcasedWeather:
return .get
}}
var sampleData: Data {
return Data()
}
var headers: [String : String]? {
switch self {
case .showCurrentWeather:
return ["Content-type":"application/json"]
case .showForcasedWeather:
return ["Content-type":"application/json"]
}
}
}
https://api.openweathermap.org/data/2.5/weather?q=london&APPID=dbd3b02d8958d62185d02e944cd5f522
在 Postman 和浏览器上运行良好。
X 代码返回
"cod":401, "message": "API 密钥无效。请参阅http://openweathermap.org/faq#error401 了解更多信息。"}
【问题讨论】: