【问题标题】:Request JSON Alamofire GET请求 JSON Alamofire GET
【发布时间】:2015-08-19 09:00:41
【问题描述】:

我有一个关于向 Alamofire 发出请求以请求 GET 的问题...因为当我发送请求时,我的服务器收到三个请求,并且该请求是空的 ....我使用 Alamofire 并使用一个路由器, “我以 json 格式发送参数”

 case .SearchTravel (let pa1,let pa2,let pa3,let pa4):

                let (path: String, parameters: [String: AnyObject]) = {

                    let parameters = [
                        "startLat": "12",
                        "startLng": "12",
                        "endLat": "12",
                        "endLng": "21",
                    ]
                    println(Router.tokenUser)
                    println(parameters)
                    return ("travels/Search/", parameters)
                }()

                let URL = NSURL(string: Router.baseURLString)



                let URLRequest = NSMutableURLRequest(
                                URL: URL!.URLByAppendingPathComponent(path))

                //---
                URLRequest.HTTPMethod="GET"

                if let token = Router.tokenUser {
                    URLRequest.setValue(

                        "Token \(token)", forHTTPHeaderField:
                        "Authorization")

                    println(token)
                }

                let encoding = Alamofire.ParameterEncoding.JSON

                return encoding.encode(URLRequest, parameters: parameters).0

当我打电话给路由器时...

Django.Router.tokenUser=userLogin.token

Alamofire.request(Django.Router.SearchTravel("23", "32", "32", "32")).responseJSON { request, response, JSON, error in
            if error==nil{
                println("Ok")
            }
            else{

                println(error)

                }

但我不知道我的要求是否做得很好或有什么问题......

或者构建json请求的方式是什么?

【问题讨论】:

    标签: json swift alamofire


    【解决方案1】:

    试试这个

    let parameters = [
                "startLat": "12",
                "startLng": "12",
                "endLat": "12",
                "endLng": "21",
            ]
            let data = NSJSONSerialization.dataWithJSONObject(parameters, options: NSJSONWritingOptions.PrettyPrinted, error: nil)
    
            let post = NSString(data: data!, encoding: NSUTF8StringEncoding) as! String
    
            httpPost("http://httpbin.org/post", postData: post) {res, c in
                println(res)
            }
    
    
    func httpPost(url:String, postData: String, completion: (String, Int) -> Void) {
    
            var request = NSMutableURLRequest(URL: NSURL(string: url)!)
    
            request.HTTPMethod = "POST"
    
            request.HTTPBody = postData.dataUsingEncoding(NSUTF8StringEncoding);
    
            request.addValue("application/x-www-form-urlencoded", forHTTPHeaderField: "Content-Type")
            request.addValue("Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.125 Safari/537.36", forHTTPHeaderField: "User-Agent")
            request.addValue("text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8", forHTTPHeaderField: "Accept")
            request.addValue("gzip, deflate, sdch", forHTTPHeaderField: "Accept-Encoding")
            request.addValue("max-age=0", forHTTPHeaderField: "Cache-Control")
    
            var session = NSURLSession.sharedSession()
    
            let task = session.dataTaskWithRequest(request, completionHandler: { data, response, error in
                if let HTTPResponse = response as? NSHTTPURLResponse {
                    let statusCode = HTTPResponse.statusCode
    
                completion(NSString(data: data, encoding: NSUTF8StringEncoding) as! String, statusCode)
                }
            })
    
            task.resume()
    
        }
    

    您可以根据需要修改功能。我已经通过 httpbin 进行了测试并看到了结果:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-11-25
      • 2016-03-29
      • 2016-12-25
      • 2019-07-18
      • 2015-07-26
      • 2018-07-13
      • 1970-01-01
      相关资源
      最近更新 更多