我正在为Alamofire使用URLRequestConvertible。
我有一个GET请求,如果我的url有一个"/",需要转义。
请参阅下面的示例,其中"NameToPass/23"现在有一个"/"。
当我使用URLEncoding.default时,"/"没有编码,但服务器希望它使用%2F进行编码
但假设我在制作相对路径时对其进行编码
"NameToPass/23".addingPercentEncoding(withAllowedCharacters: CharacterSet.alphanumerics)
Alamofire将其编码两次,并使其成为"NameToPass%252F23">
下面是相同的示例代码。
let encoding: ParameterEncoding = {
switch self {
case . getItemDetails:
return URLEncoding.default
}
}()
let url: URL = {
let relativePath: String?
switch self {
case .getItemDetails(let listName):
relativePath = "/mainAction/" + "NameToPass/23"
var url = URL(string: BaseURL)!
if let relativePath = relativePath { url = url.appendingPathComponent(relativePath) }
return url
}()
任何正确方向的提示都将不胜感激。
感谢
据我所知,您只需要转义NameToPass/23
?然后尝试
relativePath = "/mainAction/" + "NameToPass/23".addingPercentEncoding(withAllowedCharacters: CharacterSet.alphanumerics)