RestClient basic auth with # in username
守护程序访问REST api时出现问题。
该访问需要基本身份验证。用户名和密码是固定的,不能更改。
问题似乎是用户名看起来像这样:
我这样访问API:
1 2 | resource = RestClient::Resource.new("#{base_url}/failover/#{failover_ip}", { :user => user_name, :password => user_password}) response = resource.get |
这使我收到一个错误的URI错误:
1 |
当我有意从用户名中删除#时,它可以工作,但出现未验证的错误。
是否可以将包含#的用户名或密码传递给restclient?
手动将完整的URI传递给.get也不起作用。
我没有得到同样的错误。您已安装什么版本的
您可能只需更新版本即可解决您的问题(我已使用gem 1.6.7版进行了测试)
或者,这可以通过直接写入Authorization标头(无论如何该数据最终到达该地址)来解决URI故障:
1 2 3 4 | require 'base64' auth = 'Basic ' + Base64.encode64("#{user_name}:#{user_password}" ).chomp resource = RestClient::Resource.new("#{base_url}/failover/#{failover_ip}", { :headers => { 'Authorization' => auth } } ) resource.get |