如何在swift中验证API?

如何在swift中验证API?,swift,authentication,http-headers,Swift,Authentication,Http Headers,我正在尝试在我的应用程序中添加推文。 我已经实现了登录按钮,并试图通过搜索API(Fabric)访问推文 它向我显示了错误的身份验证错误 然后我通过以下代码在头中添加authenticate头来发出认证请求 let twitter = Twitter.sharedInstance() let oauthSigning = TWTROAuthSigning(authConfig:twitter.authConfig, authSession:twitter.session())

我正在尝试在我的应用程序中添加推文。 我已经实现了登录按钮,并试图通过搜索API(Fabric)访问推文

它向我显示了错误的身份验证错误

然后我通过以下代码在头中添加authenticate头来发出认证请求

    let twitter = Twitter.sharedInstance()
    let oauthSigning = TWTROAuthSigning(authConfig:twitter.authConfig, authSession:twitter.session())
    let authHeaders = oauthSigning.OAuthEchoHeadersToVerifyCredentials()
   let request = NSMutableURLRequest(URL: NSURL(string: "https://api.twitter.com/1.1/search/tweets.json?q=Himan_dhawan")!)
    request.allHTTPHeaderFields = authHeaders
但它仍然向我展示了糟糕的身份验证。。。。 我被困在如何在你的应用程序中添加推文。。。 有谁能告诉我最简单的方法吗

let authHeaders = oauthSigning.OAuthEchoHeadersToVerifyCredentials()
let urlHeader: AnyObject? = authHeaders[TWTROAuthEchoAuthorizationHeaderKey]

request.allHTTPHeaderFields = urlHeader
旁注:

用于Twitter API。在野外很少使用,对swift的支持也很少。对于swift,为了避免上述问题,我使用swifter。 一旦你提供了你的用户密钥等,它就为你完成了所有的工作

旁注:

用于Twitter API。在野外很少使用,对swift的支持也很少。对于swift,为了避免上述问题,我使用swifter。
一旦您提供了用户密钥等,它就为您完成了所有工作。

当您想要使用自己的NSMutableURLRequest时,Fabric文档并没有提供创建OAuth签名头的完整信息

let authHeaders=oauthSigning.OAuthHeadersToVerifyCredentials()

返回
[NSObject:AnyObject]
dictionary为您提供请求所需的值,它为头提供的内容与需要随NSMutableURLRequest一起发送的内容不同

以下是您应如何设置此请求的标题:

            let twitter = Twitter.sharedInstance()

            let oauthSigning = TWTROAuthSigning(authConfig:twitter.authConfig, authSession:twitter.session())

            let authHeaders = oauthSigning.OAuthEchoHeadersToVerifyCredentials()

            let mutableUrlWithUsableUrlAddress = NSMutableURLRequest(URL: usableUrlForRequest)

            mutableUrlWithUsableUrlAddress.addValue(authHeaders[TWTROAuthEchoAuthorizationHeaderKey] as? String, forHTTPHeaderField: "Authorization")
这会将所需的授权密钥设置为请求上“Authorization”标头的值,而不是在传入authHeaders字典时,将其设置为“X-Verify-Credentials-Authorization”


当然可以这样做,但它比它应该的稍微隐藏一些。

当您想要使用自己的NSMutableURLRequest时,Fabric文档并没有提供创建OAuth签名头的完整信息

let authHeaders=oauthSigning.OAuthHeadersToVerifyCredentials()

返回
[NSObject:AnyObject]
dictionary为您提供请求所需的值,它为头提供的内容与需要随NSMutableURLRequest一起发送的内容不同

以下是您应如何设置此请求的标题:

            let twitter = Twitter.sharedInstance()

            let oauthSigning = TWTROAuthSigning(authConfig:twitter.authConfig, authSession:twitter.session())

            let authHeaders = oauthSigning.OAuthEchoHeadersToVerifyCredentials()

            let mutableUrlWithUsableUrlAddress = NSMutableURLRequest(URL: usableUrlForRequest)

            mutableUrlWithUsableUrlAddress.addValue(authHeaders[TWTROAuthEchoAuthorizationHeaderKey] as? String, forHTTPHeaderField: "Authorization")
这会将所需的授权密钥设置为请求上“Authorization”标头的值,而不是在传入authHeaders字典时,将其设置为“X-Verify-Credentials-Authorization”


确实要这样做,但它比它应该的稍微隐藏一些。

为什么上面的代码没有按预期工作?为什么它显示了错误的身份验证?我正在问这个bcs我离我的目标很近,我只想验证我的请求。。。。。。我无法解决我的问题…我得到的stuckauthheaders不是您需要的密钥。authHeaders[TWTROAuthEchoAuthorizationHeaderKey]是您需要的密钥。我已经实现了您编写的内容……但它仍然显示了错误的身份验证……这是什么原因……您知道吗?为什么上面的代码不能按预期工作?为什么它显示了错误的身份验证?我正在问这个bcs我离我的目标很近,我只想验证我的请求。。。。。。我无法解决我的问题…我得到的stuckauthheaders不是您需要的密钥。authHeaders[TWTROAuthEchoAuthorizationHeaderKey]是您需要的密钥。我已经实现了您编写的内容……但它仍然显示出身份验证不好……这是什么原因……您知道吗??