在Swift中通过Alamofire访问Domino Access Service时键入

我在通过Alamofire在Swift中从Domino Access Service(9.0.1)访问REST API时遇到了一些麻烦。 我的代码如下所示:

    Alamofire.request(.GET, dbPath)
        .authenticate(usingCredential: credential)
        .responseViewCollectionArray { (request, response, viewWrapper, error) in
            println("res: (response)")
            if let anError = error {
                println("error (anError)")
                completionHandler(nil, anError)
                return
            }
            println("success atPath")
            completionHandler(viewWrapper, nil)
    }

结果是什么:

res:可选({URL:http://das.name.de/DASLib.nsf/api/data/collections} {status code:404,headers {“Cache-Control”=“no-cache”; Connection = close ;“Content-Length”= 220;“Content-Type”=“ text / html; charset = US-ASCII ”; Date =“Mon,06 Apr 2015 06:41:37 GMT”; Expires =“Tue,Jan Jan (Cocoa error 3840.)“(JSON文本没有启动与数组或对象和选项允许片段不设置。)UserInfo = 0x7fc911f01af0 {NSDebugDescription = JSON文本没有开始与数组或对象和选项,以允许片段没有设置。}

所以内容类型错了,为什么我把它放入JSON(swiftyJSON)时出错了。 我可以看到使用responseString而不是来自Alamofire的responseJSON的“错误”结果。 现在奇怪的部分是。 当我把终点放在像CocoaRestClient这样的休息客户端时,它给了我不同的内容类型

HTTP 200没有错误

内容编码:gzip内容长度:489 Vary:Accept-Encoding内容类型: application / json服务器:Lotus-Domino日期:Sun,05 Apr 2015 19:41:28 GMT

如果我使用相同的代码访问Domino-REST-API(例如服务器上的数据库)的其他部分(仅更改终点)。 代码运行良好,我得到了JSON。

那么我错过了什么? 也许有人在通过Domino中的xPages使用REST时遇到同样的问题。


正如@ muenzpraeger指出的:你有一个404 - 没有找到。 假定资源确实存在,它指向一个配置错误。 您很可能没有启用数据库或视图以通过DAS访问。 如果允许任何能够访问URL并具有作者或更好访问权限的人访问,可以写回任意文档并弄乱数据库(无需验证!),否则我会对DAS超级小心。

我正在研究一些替代方案(也会在404上返回JSON)。 敬请关注

链接地址: http://www.djcxy.com/p/48183.html

上一篇: Type when accessing Domino Access Service via Alamofire in Swift

下一篇: Header Type change to application/json not changing