Alamofire参数缺失参数

时间:2016-12-21 05:06:57

标签: ios swift2 swift3 alamofire

我安装Alamofire的pod文件用于调用Web服务,并在没有参数传递给Web服务时成功检索数据,但是当我尝试传递参数时显示缺少此参数。

这是我的代码:

let parameters: Parameters = ["client_id": "1","user_token":"A4YkkH5FdTbRCI8Mk98s"]
let url = "http://***********/index.php/Web_api/get_client_profile"
Alamofire.request(url , method: .post, parameters: parameters, encoding: JSONEncoding.default, headers: nil).responseJSON { (response:DataResponse<Any>) in

            switch(response.result) {
            case .success(_):
                if response.result.value != nil{
                    print(response.result.value)
                }
                break

            case .failure(_):
                print(response.result.error)
                break

            }
        }

响应:

{
      "message : client_id parameter missing",
      "Code : 500"
}

我做错了什么?请帮帮我 谢谢

1 个答案:

答案 0 :(得分:1)

在敲了6个小时之后,我想出了一个不同的方法,这是一种调用它的方法,它有效:

var request: Alamofire.Request? {
    didSet {
        oldValue?.cancel()
    }
}

func loadDataFromServer(message:String?) {
    // Prerequisites for Connection to Server
    let timeParameter =  self.getLastTimeStamp()
    let url = "http://your.amazing.url/path/component/classs"
    let parameter = ["timestamp":timeParameter]

    //sho hud only of there is no data listed
    if message != nil {
        HUD.show(HUDContentType.label("Loading.."))
    }

    self.request = Alamofire.request(url, method: .post, parameters:parameter)
    if let request = request as? DataRequest {
        request.responseString { response in
            PKHUD.sharedHUD.hide()
            do{
                let dictionary = try JSONSerialization.jsonObject(with: response.data!, options: JSONSerialization.ReadingOptions.allowFragments) as! NSDictionary

                //Save and Fetch
                self.saveTimestamp(dictionary: dictionary, wsEntity: "Section")
                self.saveDataInPersisanceStorage(articalDictionary: dictionary)
                self.fetchDatafromCore()

                //HUD.flash(.success, delay:1.0)
            }catch{
                //HUD.flash(.error, delay:1.0)
            }
        }
    }
}