URLRequest HTTPBody не имеет никакого значения - PullRequest
0 голосов
/ 29 апреля 2019

Я пытаюсь преобразовать старый код swift в новый. У меня проблемы с mutable.HTTPBody это не имеет никакого значения в новом коде. Это потому, что я использую URLRequest вместо NSMutableURLRequest. Как мне это исправить?

Swift 2 (старый код):

let mutableURLRequest = NSMutableURLRequest(URL: rootURL.URLByAppendingPathComponent(route.path))

mutableURLRequest.HTTPMethod = method.rawValue
encoding = Alamofire.ParameterEncoding.JSON


let (request, error) = encoding.encode(mutableURLRequest, parameters: route.parameters)

if error != nil { fatalError(error!.description) }

if let mutable: NSMutableURLRequest = request {
    if let key = sessionKey {
        let sessionIdHeader = SessionIdHeader(sessionKey: key, sessionId: sessionId, body: mutable.HTTPBody)
        mutable.setValue(sessionIdHeader.stringValue(), forHTTPHeaderField: "Authorization")
    }
}

return request

Swift 4 (новый код конверсии):

let url = URL(string: route.path, relativeTo: rootURL)
var mutableURLRequest = URLRequest(url:url!)

mutableURLRequest.HTTPMethod = method.rawValue
encoding = Alamofire.ParameterEncoding.JSON

if let key = sessionKey {
    let sessionIdHeader = SessionIdHeader(sessionKey: key, sessionId: sessionId, body: mutableURLRequest.httpBody)
    mutableURLRequest.setValue(sessionIdHeader.stringValue(), forHTTPHeaderField: "Authorization")
}

return  try encoding.encode(mutableURLRequest, with: route.parameters)
...