2014-11-06 8 views

Antwort

7

Ich habe es funktioniert.

Dies hat keine Auswirkung auf iOS7:

Alamofire.Manager.sharedInstance.session.configuration.HTTPAdditionalHeaders = ["CustomHeader": customValue] 

aber dies auf beide iOS7 & 8 arbeiten:

var headers = Alamofire.Manager.sharedInstance.session.configuration.HTTPAdditionalHeaders ?? [:] 
    headers["CustomHeader"] = customValue 

    let configuration = NSURLSessionConfiguration.defaultSessionConfiguration() 
    configuration.HTTPAdditionalHeaders = headers 

    Alamofire 
     .Manager(configuration: configuration) 
     .request(.GET, "https://example.com/api/users", parameters: nil, encoding: .JSON) 
1

mich mit dem gleichen Problem stecken, am Ende ich komme mit die Wolfslösung. (I verändert ein wenig die ursprünglich Bibliothek, so seien Sie vorsichtig!)

Ich war immer die Methode aufrufen:

public func request(method: Method, URLString: URLStringConvertible, parameters: [String: AnyObject]? = nil, encoding: ParameterEncoding = .URL) -> Request 

Und ich den Aufruf der Methode bemerkt:

private func URLRequest(method: Method, URL: URLStringConvertible) -> NSURLRequest 

Nur innerhalb dieser Funktion habe ich eine Zeile Code eingefügt:

mutableURLRequest.setValue(valueHeader, forHTTPHeaderField: keyHeader) 

mit den folgenden Ergebnis (nur klar sein):

private func URLRequest(method: Method, URL: URLStringConvertible) -> NSURLRequest { 
    let mutableURLRequest = NSMutableURLRequest(URL: NSURL(string: URL.URLString)!) 
    mutableURLRequest.HTTPMethod = method.rawValue 

    if(contentHeader){ 
     mutableURLRequest.setValue(valueHeader, forHTTPHeaderField: keyHeader!) 
    } 

    return mutableURLRequest 
} 

Ich habe auch eine Methode, die Werte zu übergeben. Ich hoffe, das wird funktionieren

1

Ich benutze die NSMutableURLRequest benutzerdefinierte Header festlegen.

Überprüfen Sie dieses Beispiel.

var request = NSMutableURLRequest(URL: NSURL(string: "http://example.com")!) 
request.HTTPMethod = "POST" 
request.setValue("<HEADER VALUE>", forHTTPHeaderField: "<HEADER FIELD>") 

var parameter: NSDictionary = ["dimensions" :["product" : ["name" : "macpro", "price" : "350"]]] 
request.HTTPBody = NSJSONSerialization.dataWithJSONObject(parameter, options: nil, error: nil) 

Alamofire.request(request).response { (request, response, result, error) -> Void in 
       // handle response 
    println("\(request) \t \(response) \t \(result) \t \(error) ") 
} 
-1

Im Folgenden ist der vollständige Code, der für iOS funktioniert 7 und iOS 8

let URL = NSURL(string: request.url!) 
var mutableURLRequest = NSMutableURLRequest(URL: URL!) 
mutableURLRequest.HTTPMethod = Alamofire.Method.GET.rawValue 

// Adding headers 
var defaultHeaders = Alamofire.Manager.sharedInstance.session.configuration.HTTPAdditionalHeaders ?? [:] 
let configuration = NSURLSessionConfiguration.defaultSessionConfiguration() 
configuration.HTTPAdditionalHeaders = defaultHeaders 

// Adding parameters 
let manager = Alamofire.Manager(configuration: configuration) 
let urlReq = ParameterEncoding.URL.encode(mutableURLRequest, parameters: request.params).0 
aReq = manager.request(urlReq) 
aReq!.responseJSON { (req, response, JSON, error) in } 

Weitere Informationen: Alamofire Issues - GitHub