在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