【问题标题】:urlEncoding issue with Swift OdataSwift Odata 的 urlEncoding 问题
【发布时间】:2019-09-24 09:57:19
【问题描述】:

我们的 OData 服务

 {{url}}/odata/GroupMembers?$filter=GroupName eq 'PDL-**-Users-Test'

eq 前后的空格在 Swift 中进行 urlencoding 时变为 %2520,导致错误代码 400。

odata/GroupMembers?$filter=GroupName%2520eq%2520'PDL-**-Users-Test'

【问题讨论】:

  • 看来你对你的字符串进行了两次 urlencode:%20 是 urlencoded %2520
  • 可以分享一下相关代码吗?

标签: odata swift4 swift5


【解决方案1】:

我之前的代码是,

urlComponents.queryItems = [URLQueryItem]()

for (key,value) in parameters {
         let queryItem = URLQueryItem(name: key,
                                         value: "\(value)".addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed))            
   }

urlRequest.url = urlComponents.url

通过删除以下代码,它起作用了。

.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)

原因是 Apple 的 URLComponents 和 URLQueryItem 在 Swift 中进行编码。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-25
    • 1970-01-01
    相关资源
    最近更新 更多