【问题标题】:Alamofire Parameter missing in response响应中缺少 Alamofire 参数
【发布时间】: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]
  • 是的,但是我想传递多个参数

标签: ios swift2 swift3 alamofire


【解决方案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)
            }
        }
    }
}

【讨论】:

  • 我会尝试并告诉你
  • 谢谢你,我已经厌倦了调用它,但你的方法为我做到了。谢谢
猜你喜欢
  • 2018-04-23
  • 1970-01-01
  • 1970-01-01
  • 2019-09-14
  • 1970-01-01
  • 1970-01-01
  • 2021-07-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多