Tag: httpclient

使用REST_CLIENT发出请求,相当于curl请求

我正在尝试使用rest_client来发出这个curl请求,并且我一直都弄错了。 我该怎么做? curl请求:它运行良好并从yahoo返回访问令牌。 curl -u “:” -d “grant_type=authorization_code&code=&redirect_uri=” https://api.login.yahoo.com/oauth2/get_token 我正在努力工作的rest_client请求是: # get token yahoo_url = “https://api.login.yahoo.com/oauth2/get_token/” response = RestClient::Request.new( :method => :get, :url => yahoo_url, :client_id => $consumer_id, :client_secret => $consumer_secret, :headers => { :accept => :json,:content_type => :json}, :params => {‘grant_type’ => ‘authorization_code’, ‘code’ => code, ‘redirect_uri’ => $yahoo_redirect_url} ).execute results = JSON.parse(response.to_str) puts […]

禁用Ruby net / http的SNI扩展 – 使用带SSL / TLS的IP地址

我有一个Ruby轮询脚本,它运行在IP范围内的一组服务器上。 我非常强烈希望通过IP地址而不是主机名进行轮询,因为: 1)我已经定义了要轮询的IP地址范围,主机名是任意的/改变很多 2)因为它们变化很大,大多数主机名没有反向DNS查找,所以我无法设计来自IP的主机名列表 在我们的Web服务器对此轮询没有问题之前,但是在不接受SSLv3通信的新服务器上,这是我运行轮询时出现的错误: /home/dashboard/.rvm/rubies/ruby-2.1.6/lib/ruby/2.1.0/net/http.rb:923:in `connect’: SSL_connect returned=1 errno=0 state=unknown state: tlsv1 unrecognized name (OpenSSL::SSL::SSLError) 在服务器端,这是错误: nss_engine_init.c(1802): start function ownSSLSNISocketConfig for SNI nss_engine_init.c(1827): Search [val = 172.16.99.18] failed, unrecognized name 当我使用主机名运行轮询时,一切正常。 以下是Ruby中HTTP客户端代码的关键: def init_http(url) uri = URI.parse(url) http = Net::HTTP.new(uri.host, uri.port) http.verify_mode = OpenSSL::SSL::VERIFY_PEER http.read_timeout = 10 http.use_ssl = true #http.ssl_version = ‘TLSv1’ return […]