使用 alamofire 的 post 方法没有得到正确的响应,结果是失败 [关闭]

Posted

技术标签:

【中文标题】使用 alamofire 的 post 方法没有得到正确的响应,结果是失败 [关闭]【英文标题】:not getting correct response for post method using alamofire,result is failure [closed] 【发布时间】:2017-03-14 06:08:26 【问题描述】:

对于使用 Alamofire 的 post 方法,我没有得到正确的响应。 结果是失败,并且响应内容类型获取 text/xml 而不是 application/json,任何人都可以帮我解决这个问题。

`

let params = ["mobile":"0000000000", "pin":"000000", "devicekey":"99", "deviceOs":"123456", "deviceOsVersion":"12", "userType":"employee"]
        var request = URLRequest(url: Login_URL! as URL)
        request.httpMethod = "POST"
        request.setValue ("application/json",forHTTPHeaderField: "Content-Type")
        let data = try! JSONSerialization.data(withJSONObject: params as Any, options: JSONSerialization.WritingOptions.prettyPrinted)
        let json = NSString(data: data, encoding: String.Encoding.utf8.rawValue)
        if let json = json 
            print(json)
        
        request.httpBody = json!.data(using: String.Encoding.utf8.rawValue);

        Alamofire.request("Login_URL",method: .post, parameters: params, encoding: JSONEncoding.default)
           .responseJSON(options: .allowFragments)  response in
                print("Request: \(response.request)")
                print("Response: \(response.response)")
                print("Data: \(response.data)")
                print("Result: \(response.result)")
                if let JSON = response.result.value 
                    print("JSON: \(JSON)`

这里我给的参数是 0000000000 和 000000 分别用于移动和 pin 但我想为此提供动态值,我该怎么做。

【问题讨论】:

您能否展示您尝试过的代码以及收到的错误类型? 嗨,我刚得到输出,是 url 拼写错误 嗨,你能解释一下我们如何动态获取参数吗,例如:我有用户名和密码,应该是动态的,你能解释一下如何使用 post 方法@Dhruv @vineela 你问的是向 alamofire 添加参数吗? @vineela 至少显示您的代码,然后我们很容易根据您的实现提出建议。 【参考方案1】:

您必须在某个变量中具有 mobilepin 的值。 比方说,strMobilestrPin 只需在您的字典中替换它即可。

let params = ["mobile": strMobile, "pin":strPin, "devicekey":"99", "deviceOs":"123456", "deviceOsVersion":"12", "userType":"employee"]

或者使用var代替let,然后填写键值。

var params = ["devicekey":"99", "deviceOs":"123456", "deviceOsVersion":"12", "userType":"employee"]
params["mobile"] = strMobile
params["pin"] = strPin

【讨论】:

会尝试让你知道,你 它的工作谢谢你:-) 太棒了。看来你是新来的。所以我建议下次做一些搜索然后问一个问题。 是的,我是这个快速编程的新手,我搜索了 post 方法,但没有搜索动态参数 我在控制台中得到响应,但是你能告诉我如何在模拟器上获取它,因为如果我输入错误的数字,我没有收到任何消息,我只在控制台中得到响应,说那个数字是错误的,你能告诉如何为此编写函数

以上是关于使用 alamofire 的 post 方法没有得到正确的响应,结果是失败 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

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

使用 Alamofire 请求方法在 POST 的请求正文中发送 JSON 对象数组

Alamofire 从 POST 获得响应

Alamofire POST 方法中的 POST 对象数组 - Swift/IOS

如何在 Alamofire 4.0 中仅使用参数和正文在 swift 中使用 POST 方法发送请求?

如何使用 Alamofire (post) 上传图片?