我正在为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
}()
任何正确方向的提示都将受到高度赞赏。
谢谢
答案 0 :(得分:1)
据我了解,您只需要逃脱NameToPass/23
吗?然后尝试
relativePath = "/mainAction/" + "NameToPass/23".addingPercentEncoding(withAllowedCharacters: CharacterSet.alphanumerics)