【问题标题】:swift error "Domain=NSCocoaErrorDomain Code=3840 "Invalid value around character 1."快速错误“Domain=NSCocoaErrorDomain Code=3840“字符 1 周围的值无效。”
【发布时间】:2016-08-28 01:52:24
【问题描述】:

我无法在我的 Swift Alamofire POST 请求中修复此错误消息(以登录用户)。

'3840' "字符 1 周围的值无效。"

我已经导入了 Foundation、AlamofireSwiftyJson。没有授权限制(没有 Oauth 等)。当我更改 Post(例如,使用其他参数和值到另一个端点)但保持其余代码/格式相同时,我也会收到相同的错误消息。在我的 drupal7 REST 服务器“定义”上,它将端点列为 /rest/user/login,将参数列为我使用的“用户名”和“密码”字符串。

非常感谢任何提示和帮助?

调用请求时出错 错误域 = NSCocoaErrorDomain 代码 = 3840 “字符 1 周围的值无效。” UserInfo={NSDebugDescription=字符 1 周围的值无效。}

这是我的代码

 @IBAction func loginButtonTapped(sender: AnyObject) {

    //using Alamofire

    let dataEndpoint: String = "https://www.example.com/rest/user/login"
    let newData = ["username":"Mickey", "password":"123"]
    Alamofire.request(.POST, dataEndpoint, parameters: newData, encoding: .JSON)
        .responseJSON { response in
            guard response.result.error == nil else {
                // got an error in posting the data, need to handle it
                print("error calling REQUEST")
                print(response.result.error!)
                return
            }

            guard let value = response.result.value else {
                print("no result data  when calling request")
                return
            }
            let data = JSON(value)
            print("The result is: " + data.description)
    }

}

谢谢

【问题讨论】:

标签: swift post error-handling alamofire


【解决方案1】:

如果它一开始可以工作,但现在无法序列化,那么这可能是因为您的服务器已关闭。由于服务器关闭页面 (html) 将作为响应返回。所以不要忘记在浏览器中检查您的 API

【讨论】:

    【解决方案2】:

    我相信错误“3840 Invalid value around character 1”也是 404 Page Not Found 错误

    意思是 Alamofire 并没有真正连接到服务器端。

    记住这条准则:

    1. 双重或我应该说三重检查您的 URL 端点。
    2. 还要检查您是否使用了正确的参数编码。
    3. 我建议您为 API 请求创建 Alamofire 路由器。 (https://github.com/Alamofire/Alamofire#crud--authorization)

    【讨论】:

      【解决方案3】:

      当问题实际上是服务器端 django 中的导入错误时,我收到此错误。通过在wireshark中跟踪tcp流,我得到了这个:

      'ImportError': ,

      【讨论】:

        【解决方案4】:

        在 URL 端点末尾添加 .json 已解决该错误。即https://www.example.com/rest/user/login.json

        【讨论】:

          【解决方案5】:

          这是一个错误,说明来自服务器的响应不是有效的 JSON 并且包含不可读的字符(例如 html)基本上这意味着您的上传不顺利(服务器未接受因此未显示 json 响应)或您没有正确设置 json 响应并且它包含 html。您可以通过查看浏览器中的页面并检查来源来检查后者。

          希望这会有所帮助!

          Ps:我假设您在真实代码中使用了有效的 URL,对吧? ;-)

          【讨论】:

          • 谢谢,我会检查服务器是否收到数据。 (是的,这是真实代码中的有效 URL)
          猜你喜欢
          • 2016-04-13
          • 2018-06-17
          • 1970-01-01
          • 2017-06-24
          • 2016-09-19
          • 1970-01-01
          • 2018-02-20
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多