Alamofire URLRequestConvertible无法在编码中转"/"



我正在为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)

最新更新