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
istHeader : Optional(["Location": "XYZLocation"])
Wie kann ich die Header-Schlüssel Groß- und Kleinschreibung beibehalten. Bitte hilf mir.
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. –
@ 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. –