响应中缺少 Alamofire 参数

Posted

技术标签:

【中文标题】响应中缺少 Alamofire 参数【英文标题】:Alamofire Parameter missing in response 【发布时间】:2016-12-21 05:06:56 【问题描述】:

我安装了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"

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

【问题讨论】:

没问题,从php端看不区分大小写 你用邮递员测试了吗?这是服务器端错误,与此代码几乎无关 我已经在邮递员中对其进行了测试,我正在获取数据,并且我还使用 afnetworking 实现了它,它可以工作,但在 alamofire 中它不能工作@Tj3n Parameters 这个类型是什么?应该是[String:AnyObject] 是的,但是我想传递多个参数 【参考方案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)
            
        
    

【讨论】:

我会尝试并告诉你 谢谢你,我已经厌倦了调用它,但你的方法为我做到了。谢谢

以上是关于响应中缺少 Alamofire 参数的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Swift 3 中使用 Alamofire 在 POST 请求中将给定的 JSON 作为参数发送?

Alamofire4在使用方法时抛出“额外参数方法”:.post

如何从 Swift 3 上的响应字符串中检索标题字段?

AlamoFire 图像内存问题

请求 Alamofire

如何在响应闭包中访问 Alamofire 请求参数?