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 が機能していない可能性があります。私は、他の宝石やまったく異なるアプローチを使用することにオープンです。どんな助けでも大歓迎です!
編集:
2 番目の例を次のように変更することで、接続拒否エラーを取り除くことができました。
resource = RestClient::Resource.new(page_url)
resource.head :Authorization => "Basic " + Base64.encode64("%s:%s" % [username, password])
ただし、405 Method Not Allowed エラーが発生しています。ブラウザが送信しているヘッダーに、rest-client が送信していないものがありますか?