1

HTTPリクエストを送信する必要がありますが、これを行うことはできますが、バックエンドレスのAPIにはHTTPリクエストヘッダーのapplication-idとsecret-keyが必要です。それを自分のコードに追加する方法を教えてください。おかげSwift:ヘッダーにパラメータを含むHTTPリクエスト

let urlString = "https://api.backendless.com/v1/data/Pub" 
    let session = NSURLSession.sharedSession() 
    let url = NSURL(string: urlString)! 

    session.dataTaskWithURL(url){(data: NSData?,response: NSURLResponse?, error: NSError?) -> Void in 

     if let responseData = data 
     { 
      do{ 
       let json = try NSJSONSerialization.JSONObjectWithData(responseData, options: NSJSONReadingOptions.AllowFragments) 
       print(json) 
      }catch{ 
       print("Could not serialize") 
      } 
     } 

    }.resume() 

答えて

9

スウィフト3

var request = URLRequest(url: url) 
request.setValue("secret-keyValue", forHTTPHeaderField: "secret-key") 

URLSession.shared.dataTask(with: request) { data, response, error in } 

スウィフト2.2

は次のようにNSMutableRequestにあなたのNSURLラップ:

let request = NSMutableURLRequest(URL: url) 

アン

request.setValue("secret-keyValue", forHTTPHeaderField: "secret-key") 

を、代わりにdataTaskWithURL:使用dataTaskWithRequest:方法を使用する:Dそして、あなたのrequestオブジェクトにヘッダを追加するには、このメソッドを使用します。

session.dataTaskWithRequest(request){ 
(data: NSData?,response: NSURLResponse?, error: NSError?) -> Void in } 
+0

エラーが発生しました –

+0

更新された回答を確認してください。 HTTPヘッダには 'setValue:forKey:'を使わないでください.HTTPヘッダにヘッダを追加しないかもしれないので注意してください。 –

+0

これは動作します、ありがとう –

0

私はこれを行いました。

let urlString = "https://api.backendless.com/v1/data/Pub" 
     let session = NSURLSession.sharedSession() 
     let url = NSURL(string: urlString)! 
     let request = NSMutableURLRequest(URL: url) 

     request.setValue("application-idValue", forKey: "application-id") 
     request.setValue("secret-keyValue", forKey: "secret-key") 

     session.dataTaskWithRequest(request){(data: NSData?,response: NSURLResponse?, error: NSError?) -> Void in 

      if let responseData = data 
      { 
       do{ 
        let json = try NSJSONSerialization.JSONObjectWithData(responseData, options: NSJSONReadingOptions.AllowFragments) 
        print(json) 
       }catch{ 
        print("Could not serialize") 
       } 
      } 

     }.resume() 
    } 
関連する問題