【发布时间】:2019-05-18 19:12:51
【问题描述】:
当我第一次调用 api 时,我得到了预期的响应。但是,一旦我更改了参数值,响应就会显示为“消息”:“无法验证您:
var params = ["q":"fashion"]
var header = ["authorization":"OAuth
oauth_consumer_key=\"consumer_key\",oauth_signature_method=\"HMAC-SHA1\",oauth_timestamp=\"1545130242\",oauth_nonce=\"nonce\",oauth_version=\"1.0\",oauth_signature=\"signature\""]
Alamofire.request(url, method: .get, parameters: params,headers: headers).responseJSON { (response) in
if (response.result.isSuccess){
print("Success! got the weather data")
let twitterJSON: JSON = JSON(response.result.value!)
// self.updateWeatherData(json: weatherJSON)
print("\(twitterJSON)")
self.updateTwittes(json: twitterJSON)
}else{
print("Error \(String(describing: response.result.error)) ")
}
}
【问题讨论】:
-
headers: headers(实际变量名是header)。您是否还有另一个名为 headers 的变量或属性? -
通过使用邮递员,每当我更改参数值时,一切都会很好,我会根据查询值获得 JSON 响应。我认为授权值正在通过 Alamofire 大写等方式发生变化。
-
你是怎么改的?
-
"header" 变量被传递给另一个包含 Alamofire 函数的函数,它看起来像这样: func getTwitterData(url: String,headers: [String:String] ,Params: [String: String]) @Scriptable
-
我知道发生了什么!,每当我更改参数值时,oauth_signature 值应该根据该值更改,例如 var params = ["q":"fashion"] Postman api 框架生成的某个 oauth_signature 值可以生成不同于 var params = ["q":"tree"]。但是,我正在寻找为特定参数值自动生成的 oauth_signature。在前面的示例中,我第一次从 Postman 复制了标头值,它为某个查询提供了正确的 oauth_signature
标签: ios swift api twitter alamofire