Dans mon application iOS, j'utilise Alamofire 4 et je veux envoyer une requête à l'arrière-plan avec des paramètres de requête. mais Alamofire convertit le "?" à "% 3F" dans la requête url (http://blahblahblah/mobile-proxy/authorizations%3FphoneNumber=+555555555&userID=agent) et j'obtiens 404 erreur de backend. J'ai lu sur URLEncoding, mais je ne trouve pas comment je peux l'utiliser avec URLRequest, parce que j'utilise un fichier enum de routeur personnalisé avec URLRequest. Ceci est une partie de mon dossier Router:Query params dans Alamofire
func asURLRequest() throws -> URLRequest {
let url = try Router.baseUrl.asURL()
var urlRequest = URLRequest(url: url.appendingPathComponent(path))
urlRequest.httpMethod = method.rawValue
switch self {
case .authorizations:
urlRequest.setValue("application/json", forHTTPHeaderField: "Content-Type")
urlRequest.setValue(getHeaderCredentials().operationID, forHTTPHeaderField: Constants.operationID)
urlRequest.setValue(getHeaderCredentials().appCode, forHTTPHeaderField: Constants.appCode)
case .startAuthentication, .startContractOperation:
urlRequest.setValue("application/json", forHTTPHeaderField: "Content-Type")
urlRequest.setValue(getHeaderCredentials().appCode, forHTTPHeaderField: Constants.appCode)
case .operationAllowance:
urlRequest.setValue("application/json", forHTTPHeaderField: "Content-Type")
default:
break
}
switch self {
case .authorizations:
urlRequest = try Alamofire.URLEncoding.queryString.encode(urlRequest, with: nil)
default:
break
}
return urlRequest
}
J'essaie Alamofire.URLEncoding.queryString.encode, mais cela ne fonctionne pas.
Merci! Ça a marché comme un charme! –