在Alamofire中快速发送GET请求中的JSON对象 [英] Sending json object in GET request in swift in Alamofire

查看:125
本文介绍了在Alamofire中快速发送GET请求中的JSON对象的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试将JSON对象绑定到GET请求,这就是我生成JSON对象的方式

I'm trying to execute a GET requst with json object binded to it , This i how i generated JSON object

   let jsonObject: [String: AnyObject] = [

        "ean_code": [
            "type": "match",
            "value": "16743799"
        ]
    ]

然后我执行了请求

像这样

        Alamofire.request(.GET,Constant.WebClient.WS_URL + "/product?filters="+String(jsonObject),parameters:parameters)

但这给了我一个错误用无效字符绑定URL

but this gave me an error which is canot bind the URL with invalid character

,因此我从

let request = String(jsonObject).stringByAddingPercentEncodingWithAllowedCharacters(NSCharacterSet.URLPasswordAllowedCharacterSet())!

这将对URL进行编码,但我再次出现以下错误

this will encode the URL but i again this will give me following error


请求失败,并出现以下错误:错误域= NSCocoaErrorDomain代码= 3840字符0周围的值无效。
UserInfo = {NSDebugDescription =字符0周围的值无效。}

所以我的问题是我该如何将json对象绑定到GET URL?

so my question is how can I bind a json object to GET URL??

推荐答案

执行类似的操作

let parameters: [String: AnyObject] = [

    "filters": "merchantName",
    "ean_code": [
        "type": "match",
        "value": "16743799"
    ]
]

do {
    let data = try NSJSONSerialization.dataWithJSONObject(parameters, options: .PrettyPrinted)
    let jsonString = NSString(data: data, encoding: NSUTF8StringEncoding)
    let urlEncodedJson = jsonString!.stringByAddingPercentEncodingWithAllowedCharacters(.URLHostAllowedCharacterSet())
    let urlString = "http://www.filter.com/&params=\(urlEncodedJson!)"
    let url = NSURL(string: urlString)
    // Trigger alaomofire request with url
}
catch let JSONError as NSError {
    print("\(JSONError)")
}

这篇关于在Alamofire中快速发送GET请求中的JSON对象的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆