2017-09-19 3 views
0

In meiner App muss ich bei einem API-Aufruf die Position in einer Kopfzeile übergeben. Aber es ist der Schlüssel zu CamelCase konvertiert. Finden Sie meinen Code untenNSMutableURLRequest forHTTPHeaderField-Schlüssel nicht richtig festgelegt

let session = URLSession.shared 
let request = NSMutableURLRequest(url: url!) 
request.httpMethod = "GET" 

request.addValue("XYZLocation", forHTTPHeaderField: "location") 

let task = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in 

    if (error == nil){ 
     let str = String(data: data!, encoding: String.Encoding.utf8) 
     print("Response : \(String(describing: str))") 
    } 
    else{ 
     print("Error : \(String(describing: error?.localizedDescription))") 
    } 
}) 
print("Header : \(String(describing: request.allHTTPHeaderFields))") 
task.resume() 

Protokollausgabe unter

ist
Header : Optional(["Location": "XYZLocation"]) 

Wie kann ich die Header-Schlüssel Groß- und Kleinschreibung beibehalten. Bitte hilf mir.

+0

Verwenden Sie zunächst das native Swift-Äquivalent "URLRequest" anstelle von "NSMutableURLRequest". Zweitens, wenn Sie sich die [Dokumentation] (https://developer.apple.com/documentation/foundation/nsmutableurlrequest/1407676-addvalue) von 'addValue' ansehen, können Sie sehen, dass die Header-Werte die Groß-/Kleinschreibung nicht beachten zu HTTP RFC, also sollten Sie auch in Ihrem Backend Header ohne Berücksichtigung der Groß- und Kleinschreibung verwenden. –

+0

@ DávidPásztor mit 'URLRequest' auch ist es gleich. Außerdem können wir keine Änderungen am Backend vornehmen. Warum ist es nur mit "Location" Header. Es funktioniert ordnungsgemäß für andere Kopfzeilenschlüssel. –

Antwort

Verwandte Themen