SwiftでNSURLRequestでHTTPヘッダーを設定する方法を知っている人はいますか?サーバーに認証が設定されており、トークンを渡すだけでよいのですが、ヘッダーの設定に問題があります
私のコード:
func getLatestData() {
var loggedInUsersNumber:String = SharingManager.sharedInstance.userID
var usersDataPoint:String = StormDataPoint + loggedInUsersNumber
activityIND.hidden = false
activityIND.startAnimating()
let request = NSURLRequest(URL: NSURL(string: usersDataPoint)!)
let tokenString = SharingManager.sharedInstance.authToken
//request.setValue("Token " + tokenString, forKey: "Authorization")
let urlSession = NSURLSession.sharedSession()
let task = urlSession.dataTaskWithRequest(request, completionHandler: {
(data, response, error) -> Void in
if let error = error {
print(error)
return }
プロパティ「tokenString」を作成して、ヘッダーに渡すトークンと、コメントアウトした次の行に入れます。 request.setvalue-私はそれをポップし、「データ型をオーバーライドできません」のチューニングにエラーを取得します。すべての検索でObjective Cのヘルプが表示されます。ヘッダーを渡そうとするより良い方法はありますか?
Swift 3)で、URLRequest
の代わりに NSURLRequest
構造体 を使用します(同様に、NSURL
↦URL
、NSURLSession
↦URLSession
など)。
次に、 addValue(_:forHTTPHeaderField:)
を使用してヘッダーを追加します。
// Swift 3:
var request = URLRequest(url: URL(string: usersDataPoint)!)
request.addValue("Token \(tokenString)", forHTTPHeaderField: "Authorization")
Swift 2.2では、 NSMutableURLRequest
変更する必要がある場合。
// Swift 2:
let request = NSMutableURLRequest(URL: NSURL(string: usersDataPoint)!)
request.addValue("Token \(tokenString)", forHTTPHeaderField: "Authorization")
可変URLリクエストを作成してから、フィールド名の値を設定できます。
let request = NSMutableURLRequest(URL: NSURL(string: yourURLString)!)
request.setValue("\(yourValue)", forHTTPHeaderField: "Header-field-name")
var req: URLRequest = /* create requets */
req.setValue("Bearer Y3GzLG2x6wSXihmUGhwGFw", forHTTPHeaderField: "Authorization")
req.timeoutInterval = 10
let task = URLSession.shared.dataTask(with: req, completionHandler: { (data, response, error) in
print("completionHandler invoked")
})
task.resume()