ios - 带有嵌套参数的 Alamofire POST 请求不返回任何内容

标签 ios swift alamofire nsurlrequest

您好,我正在尝试使用 Alamofire 来处理我的 HTTP 请求。它正在使用不包含任何嵌套参数的参数。通常,我的网址在 Google Chrome 上可以使用以下内容。

http://111.222.33.4:12345/my_server/dispatch?cmd=ext_getReferanceData&jp=%7b%22rfName%22:%22RF_ABC%22%7d&token=123 上述网址的解码版本是

http://111.222.33.4:12345/my_server/dispatch?cmd=ext_getReferanceData&jp={"rfName":"RF_ABC"}&token=123

当我将其粘贴到任何浏览器中时,它都工作正常。但是,当我尝试使用 Alamofire 发送以下发布请求时

    let parameters3: [String: Any] = [
        "cmd": "ext_getReferanceData",
        "jp": [
            "rfName": "RF_ABC"
        ],
        "token": "123"
    ]

    Alamofire.request("http://111.222.33.4:12345/my_server/dispatch", method: .get, parameters: parameters3, encoding: JSONEncoding.default).responseJSON { (response) in
    }

回来了

FAILURE: responseSerializationFailed(Alamofire.AFError.ResponseSerializationFailureReason.inputDataNilOrZeroLength)

可能是什么原因导致我发送参数错误或者是否缺少任何内容?

编辑:我还检查了有关该错误的其他问题,但问题在于我尝试发送的参数,因为参数中有“和{,但我无法发送请求。

最佳答案

您是否考虑过打印正在发送的响应并确认它确实是您要发送的内容?

您可以做一些事情来改进

  1. 将方法设为 .post
  2. 尝试使用 .validate() 来提高可靠性

我的做法是这样的:

let submissionURL = URL(string: "https://blablabla.com/script.php")
 sendAlamofireRequest(submissionURL: submissionURL!, parameters: parameters, chosenTrackerStr: chosenTrackerString) //function call

 //function declaration
func sendAlamofireRequest(submissionURL: URL, parameters: Parameters, chosenTrackerStr: String){

    Alamofire.request(submissionURL, method: .post, parameters: parameters, encoding: JSONEncoding.default).validate().responseString() { (response) in
         //actual code goes here
    }
 }

也许尝试使用 alamofire 请求并检查其文档以查看建议的方法:)

关于ios - 带有嵌套参数的 Alamofire POST 请求不返回任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52314640/

相关文章:

swift - 从未使用过变量的初始化

json - alamofire 编码完成 JSON 到字典

swift - Alamofire 5 转义正斜杠

iOS XYPieChart 数据源方法未被触发

ios - 单击取消AlertView时应用崩溃

ios - 带有 IOS 的 Google IMA HTML5 SDK

iPhone/iPad 表格 View 仅重新加载一行而不是整个表格

ios - 为不适用于 ipad 的 View 添加边框

在 OS X Swift 应用程序中单击按钮时 Xcode 打印 "Hello World"的方法?

json - Alamofire 和 SwiftyJSON