首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何阻止MOYA/Alamfire转义我的body json参数?

如何阻止MOYA/Alamfire转义我的body json参数?
EN

Stack Overflow用户
提问于 2018-07-12 23:09:50
回答 1查看 864关注 0票数 0

我在Alamofire中使用Moya。它们紧密结合在一起。然而,Moya或Alamofire在POST请求中转义了我的body json参数。

我正在寻找在哪里以及如何防止这种逃逸发生。

示例:

代码语言:javascript
复制
{ 
  "credentials": { 
    "secret": 
jJWoBkc64O0VzcjRQv4MIuQv0HgRLiNQZL7GAhtINz6EKuaK+u+YkBMi9z3v6rqLBh8TD8lIO3F+5t7iJB/FJw==

查看转义为\/FJw==/FJw==

EN

回答 1

Stack Overflow用户

发布于 2018-07-13 20:53:12

不幸的是,这个技巧目前对我是有效的:

代码语言:javascript
复制
struct JSONStringArrayEncoding: ParameterEncoding {

func encode(_ urlRequest: URLRequestConvertible, with parameters: Parameters?) throws -> URLRequest {
    var urlRequest = urlRequest.urlRequest

    let data = try! JSONSerialization.data(withJSONObject: parameters!, options: JSONSerialization.WritingOptions.prettyPrinted)

    let json = NSString(data: data, encoding: String.Encoding.utf8.rawValue)
    if let json = json {
        print(json)
        let newJson = json.replacingOccurrences(of: "\\/", with: "/")
        urlRequest?.httpBody = newJson.data(using: String.Encoding(rawValue: String.Encoding.utf8.rawValue));
    }

    return urlRequest!
}   
}

然后在任务中

代码语言:javascript
复制
    var task: Task {
    switch self {
             case
         .postConnectAddress:
        return .requestParameters(parameters: parameters! , encoding: JSONStringArrayEncoding())
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51309104

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档