0

我正在尝试连接到安装在http://localhost的 CollectiveAccess 应用程序(它基于 Zend 框架)的 Web 服务。根据文档`一个人应该像这样进行身份验证:

http://localhost/ca5/service.php/iteminfo/ItemInfo/rest?method=auth&username=admin&password=123456

之后,可以像这样访问 API:

http://localhost/service.php/iteminfo/ItemInfo/rest?method=getLabels&type=ca_objects&item_id=4&mode=all

如果我将 URL 粘贴到 Web 浏览器中,这对我有用,但我无法使用 HTTParty 的 basic_auth 或 digest_auth 方法使其工作。

4

2 回答 2

2

您需要进行身份验证,但请确保 HTTParty 在会话期间维护初始响应返回的 cookie。CA 不使用 basic_auth 和 digest_auth - 它返回的会话 cookie 用于维护会话状态。

于 2012-03-06T23:51:05.663 回答
0

httpclient gem 支持开箱即用的 cookie,并且以下内容适用于 CollectiveAccess API:

require 'httpclient'
clnt = HTTPClient.new
clnt.set_cookie_store('/home/user/cookie.dat')
puts clnt.get('http://localhost/service.php/iteminfo/ItemInfo/rest?method=auth&username=administrator&password=12345').body
puts clnt.get('http://localhost/service.php/iteminfo/ItemInfo/rest?method=getLabels&type=ca_objects&item_id=4&mode=all').body
于 2012-03-08T09:21:47.593 回答