1

Мне нужно отправить HTTP-запрос, я могу это сделать, но мой API в Backendless требует идентификатор приложения и секретный ключ в заголовке запроса HTTP. Можете ли вы помочь добавить его в мой код? Благодаря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

Swift 3

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

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

Swift 2,2

Оберните NSURL в NSMutableRequest так:

let request = NSMutableURLRequest(URL: url) 

d затем использовать этот метод, чтобы добавить заголовок к вашему request объекта:

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

И вместо того, чтобы использовать dataTaskWithURL:dataTaskWithRequest: использовать метод.

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

it trows me the error –

+0

Проверьте обновленный ответ. Обратите внимание, что вы не должны использовать 'setValue: forKey:' для заголовков HTTP, так как он может не добавлять заголовки в тело 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() 
    } 
Смежные вопросы