Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/99.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 阿拉莫菲尔无法逃脱“/&引用;编码中_Ios_Swift_Alamofire_Nsurlsession_Url Encoding - Fatal编程技术网

Ios 阿拉莫菲尔无法逃脱“/&引用;编码中

Ios 阿拉莫菲尔无法逃脱“/&引用;编码中,ios,swift,alamofire,nsurlsession,url-encoding,Ios,Swift,Alamofire,Nsurlsession,Url Encoding,我正在为阿拉莫菲尔使用URLRequestConvertible 我有一个GET请求,因为我的url有一个“/”需要转义 请参见下面的示例,其中“NameToPass/23”现在有一个“/” 当我使用URLEncoding.default时,“/”没有编码,但服务器希望它使用%2F 但是如果我在制作relativepath时对它进行编码 "NameToPass/23".addingPercentEncoding(withAllowedCharacters: CharacterSet.alphan

我正在为阿拉莫菲尔使用URLRequestConvertible

我有一个GET请求,因为我的url有一个“/”需要转义

请参见下面的示例,其中“NameToPass/23”现在有一个“/”

当我使用URLEncoding.default时,“/”没有编码,但服务器希望它使用%2F

但是如果我在制作relativepath时对它进行编码

"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)

请看我的最新答案。As alamofire编码为“/”的两倍