hTTPリクエストを送信する必要がありますが、それは可能ですが、バックエンドレスの私のAPIでは、HTTPリクエストヘッダーにapplication-idとsecret-keyが必要です。コードに追加する方法を教えてください。ありがとう
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()
Swift 4.1およびSwift
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)
次に、このメソッドを使用してrequest
オブジェクトにヘッダーを追加します。
request.setValue("secret-keyValue", forHTTPHeaderField: "secret-key")
そして、dataTaskWithURL:
を使用する代わりに、dataTaskWithRequest:
メソッドを使用します。
session.dataTaskWithRequest(request){
(data: NSData?,response: NSURLResponse?, error: NSError?) -> Void in }
これは私がしました。
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()
}
//MARK: GET Method
func GETDataFromServerUsingHeaderParameters(nameOfApi : NSString, parameters : NSString, withCurrentTask: RequestType, andDelegate : AnyObject) -> Void {
if (currentReachabilityStatus != .notReachable){
//print("Internet Connection Available!")
currentTask = withCurrentTask
let respectedURL = NSString(format: "%@%@", GlobalConstants.KBase_Url,nameOfApi,parameters)
let myRequestUrl = (respectedURL.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed))!
let url = NSURL(string: myRequestUrl as String)!
let request = NSMutableURLRequest(url: url as URL)
request.setValue("application-idValue", forKey: "application-id")
request.setValue("secret-keyValue", forKey: "secret-key")
request.httpMethod = "GET"
let task = URLSession.shared.dataTask(with: request as URLRequest){ data,response,error in
guard let data = data, error == nil else {
self.showAlertMessage(title: "App Name", message: "Server not responding, please try later")
self.delegate?.internetConnectionFailedIssue()
return
}
if let httpStatus = response as? HTTPURLResponse, httpStatus.statusCode != 200 {
self.delegate?.internetConnectionFailedIssue()
}else{
do {
self.responseDictionary = try JSONSerialization.jsonObject(with: data, options: .allowFragments) as! NSDictionary
self.delegate?.responseReceived()
} catch {
}
}
}
task.resume()
}else{
self.showAlertMessage(title: "App Name", message: "No Internet Connection..")
}
}