2017-09-19 36 views
0

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

まず、NSMutableURLRequestの代わりにネイティブのSwift同等のURLRequestを使用します。第2に、 'addValue'の[documentation](https://developer.apple.com/documentation/foundation/nsmutableurlrequest/1407676-addvalue)を見ると、ヘッダーの値が大文字と小文字を区別しないことがわかりますHTTP RFCに変換するため、バックエンドでは大文字と小文字を区別しないヘッダも使用する必要があります。 –

+0

@DávidPásztorと 'URLRequest'も同じです。また、バックエンドを変更することもできません。なぜそれが 'Location'ヘッダーだけであるのですか?他のヘッダーキーでも正しく動作しています。 –

答えて

関連する問題