NSMutableURLRequest forHTTPHeaderField键未正确设置

问题描述:

在我的应用程序中,在进行API调用时,我需要在标头中传递位置。但关键是转换为CamelCase。请找我的代码如下NSMutableURLRequest forHTTPHeaderField键未正确设置

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() 

日志输出低于

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

我怎样才能保持头键区分大小写。请帮帮我。

+0

首先,使用本地Swift等价物,'URLRequest'而不是'NSMutableURLRequest'。其次,如果您查看'addValue'的[documentation](https://developer.apple.com/documentation/foundation/nsmutableurlrequest/1407676-addvalue),您可以看到标题值对符合大小写不敏感到HTTP RFC,所以你也应该在后端使用不区分大小写的标题。 –

+0

@DávidPásztor与'URLRequest'也是一样的。我们也无法对后端进行更改。为什么只有'Location'标题。它适用于其他标题键。 –

可能有一些方法来解决,但按照以下Apple的文档链接:

https://developer.apple.com/documentation/foundation/nsmutableurlrequest/1407676-addvalue

HTTP报头字段名不区分大小写。

我没有足够的声望评论这就是为什么我添加它作为答案。