2016-11-15 2 views
-1

В сообщении блога Feedjira 2.0, в сообщении говорится, что если вы хотите установить агент пользователя, это должен быть параметр конфигурации, но неясно, как это сделать. В идеале я хотел бы подражать параметрам, ранее предоставленным в Feedjira 1.0, включая user_agent, if_modified_since, timeout и ssl_verify_peer.Ruby: Как установить параметры конфигурации feedjira?

http://feedjira.com/blog/2014/04/14/thoughts-on-version-two-point-oh.html

С Feedjira 1.0, вы можете установить эти параметры, сделав следующий вызов (как описано here):

feed_parsed = Feedjira::Feed.fetch_and_parse("http://sports.espn.go.com/espn/rss/news", {:if_modified_since => Time.now, :ssl_verify_peer => false, :timeout => 5, :user_agent => "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.94 Safari/537.36"}) 

Единственный пример, который я видел, где параметры конфигурации устанавливаются был из comment в запросе GitHub раскладным, который следующим образом:

Feedjira::Feed.configure do |faraday| 
    faraday.request :user_agent, app: "MySite", version: APP_VERSION 
end 

Но когда я попробовал некоторые вещь, похоже, я получил следующее сообщение об ошибке:

undefined method `configure' for Feedjira::Feed:Class 
+0

Пожалуйста, прочтите «[ask]», включая связанные страницы и «[mcve]». Нам нужно увидеть минимальный код, демонстрирующий, что вы пробовали, и объяснение того, почему он не работает. В настоящее время ваш вопрос широкий. –

ответ

0

Похоже, патч был добавлен, чтобы позволить вариант тайм-аут, чтобы передать в fetch_and_parse функции: https://github.com/feedjira/feedjira/pull/318/commits/fbdb85b622f72067683508b1d7cab66af6303297#diff-a29beef397e3d8624e10af065da09a14

Однако, пока это не будет нажата в прямом эфире, тайм-аут и параметр open_timeout могут быть переданы путем обхода Feedjira для извлечения и вместо этого использования Faraday (или любой библиотеки, которая может извлекать HTTP-запросы, такие как Net :: HTTP). Вы можете также установить SSL проверить на ложь, и установить агент пользователя, например, следующим образом:

require 'feedjira' 
require 'pp' 

url = "http://www.espn.com/espnw/rss/?sectionKey=athletes-life" 

conn = Faraday.new :ssl => {:verify => false} 
response = conn.get do |request| 
    request.url url 
    request.options.timeout = 5 
    request.options.open_timeout = 5 
    request.headers = {'User-Agent' => "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.94 Safari/537.36"} 
end 
feed_parsed = Feedjira::Feed.parse response.body 
pp feed_parsed.entries.first 

Я не видел способ проверить на «if_modified_since», но я буду обновлять ответ, если я делаю.

Смежные вопросы