我正在尝试从 Kentico CMS 访问 REST 接口,但我似乎无法在我的 Rails 应用程序中正确访问它。我可以在浏览器中访问它,然后我会弹出一个用户名/密码验证框,然后在输入正确的凭据后返回 JSON。
在我的 Rails 应用程序中,我正在使用rest-client并尝试通过以下方式访问:
username = 'username_here'
password = 'password_here'
page_url = 'page_url_here'
resource = RestClient::Resource.new(page_url, :username => username, :password => password)
response = resource.get
也试过:
resource = RestClient::Resource.new(page_url)
resource.head :Authorization => Base64.encode64(username) + ":" + Base64.encode64(password)
response = resource.get
两者都给我一个连接被拒绝的错误。Kentico 的文档说,每个请求都需要发送一个授权标头,如下所示:
Authorization: Basic <enter Base64-encoded <username>:<password> here>
所以我假设我不能正确发送标头,或者可能是 rest-client gem 不能胜任这项任务。我愿意使用其他宝石或完全不同的方法。任何帮助表示赞赏!
编辑:
通过将第二个示例更改为以下内容,我能够摆脱连接被拒绝错误:
resource = RestClient::Resource.new(page_url)
resource.head :Authorization => "Basic " + Base64.encode64("%s:%s" % [username, password])
但是,我现在收到 405 Method Not Allowed 错误。浏览器发送的标题中是否还有其他内容,而不是rest-client?