2014-11-06 12 views
12

काम नहीं कर रहा है मैंने आईओएस 7 में अपने कस्टम HTTP शीर्षकों के साथ Alamofire.Manager.sharedInstance.session.configuration.HTTPAdditionalHeaders सेट करने का प्रयास किया है लेकिन मुझे कोई भाग्य नहीं मिला है।आईओएस में अलामोफायर में कस्टम HTTP शीर्षलेख सेट करना 7

यह आईओएस 8 में ठीक काम करता है।

क्या किसी के पास कोई सुझाव है?

+1

मैं एक ही मुद्दा –

+1

ही यहाँ की जांच कर रहा हूँ। मैं एक्सकोड 6.1.1 का उपयोग कर रहा हूँ। –

उत्तर

7

मुझे यह काम मिल गया।

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

हालांकि यह दोनों iOS7 & 8 पर काम करेंगे:

यह iOS7 पर कोई प्रभाव नहीं

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

मैं एक ही समस्या के साथ अटक जाते हैं, अंत मैं के साथ आने पर भेड़िया समाधान। (मैं थोड़ा मूल रूप से पुस्तकालय बदल गया है, तो सावधान हो!)

मैं हमेशा विधि बुला गया था:

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

और मैं विधि करने के लिए कॉल देखा:

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

बस इस फ़ंक्शन के अंदर मैंने कोड की एक पंक्ति डाली:

mutableURLRequest.setValue(valueHeader, forHTTPHeaderField: keyHeader) 

निम्नलिखित के साथ परिणाम (बस स्पष्ट होना):

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 
} 

मैं भी मान प्रदान करने के लिए एक विधि बनाया। मुझे आशा है कि यह

1

मैं कस्टम हेडर सेट करने के लिए NSMutableURLRequest का उपयोग कर रहा हूं।

इस उदाहरण की जांच करें।

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

नीचे पूर्ण कोड जो iOS 7 और आईओएस 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 } 

के लिए काम करता है और जानकारी: Alamofire Issues - GitHub

संबंधित मुद्दे