首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Alamofire中的` call`中的额外参数方法

Alamofire中的` call`中的额外参数方法
EN

Stack Overflow用户
提问于 2018-05-31 17:47:45
回答 2查看 294关注 0票数 0

我正在尝试使用Alamofire版本3和Swift 3发送以下数据。我得到的错误是Extra argument method in call。以下是我到目前为止所做的工作:

代码语言:javascript
复制
struct userGoalServerConnection {
        let WeightsUserGoal_POST = "http://api.umchtech.com:3000/AddWeightsGoal"


    }


struct wieghtsUserGoal {
        let id : Int
        let token : String
        let data : [ String : String ]
    }


    func syncInitialUserGaolValuesWithServer (userID : Int , userToken : String ){
        let serverConnection = userGoalServerConnection()
        let weightValue = wieghtsUserGoal.init(id: userID,
                                               token: userToken,
                                               data: ["weight_initial":"11","weight_end":"11","weight_difference":"11","calories_deficit":"11","difficulties":"11","weight_loss_week":"11","start_date":"2016-12-12","end_date":"2016-12-23","days_needed":"11"])

        Alamofire.request(userGoalServerConnection.WeightsUserGoal_POST, method:.post, parameters: weightValue, encoding: JSONEncoding.default, headers:nil).responseJSON { response in
                print(response.request as Any)  // original URL request
                print(response.response as Any) // URL response
                print(response.result.value as Any)   // result of response serialization
        }

我是个新手,所以如果我的问题有点太新手,请不要介意。我在这里遇到过类似的问题,但它们并没有帮助我找出我在哪里犯了错:)

EN

回答 2

Stack Overflow用户

发布于 2018-05-31 19:03:52

您在请求中将weightValue作为POST参数传递,这是不可能的。如果您使用的是JSONEncoding,则传递Parameters对象的类型。

代码语言:javascript
复制
let params: Parameters = [
        "Key1": "value1",
        "key2": "value2"
    ]
票数 0
EN

Stack Overflow用户

发布于 2018-05-31 19:15:01

您只能传递字典类型的alamofire请求,不能发布结构类型。

您可以在Alamofire请求中发送[String : String][String : Any]

你可以试试这条路

代码语言:javascript
复制
 let WeightsUserGoal_POST = "http://api.umchtech.com:3000/AddWeightsGoal"




func Serialization(object: AnyObject)  -> String{
    do {
        let stringData = try JSONSerialization.data(withJSONObject: object, options: [])
        if let string = String(data: stringData, encoding: String.Encoding.utf8){
            return string
        }
    }catch _ {

    }
    return "{\"element\":\"jsonError\"}"
}




func syncInitialUserGaolValuesWithServer (userID : Int , userToken : String ){


let data = ["weight_initial":"11","weight_end":"11","weight_difference":"11","calories_deficit":"11","difficulties":"11","weight_loss_week":"11","start_date":"2016-12-12","end_date":"2016-12-23","days_needed":"11"] as! [String : String]
        let dataSerialized = Serialization(object: data as AnyObject)
        let param = ["id" : userID,
                     "token" : userToken,
        "data" : dataSerialized ]


  Alamofire.request(WeightsUserGoal_POST, method: .post, parameters: param ,encoding: JSONEncoding.default, headers: nil).responseJSON { response in
            print(response.request as Any)  // original URL request
            print(response.response as Any) // URL response
            print(response.result.value as Any)   // result of response serialization
        }
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50621366

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档