2015-06-25 3 views
0

Мне очень нравится API RestClient, но мне кажется, что я не могу настроить прокси, таймауты, запросы на запросы, ssl и т. Д. За запрос. Например, если я хочу выполнять некоторые запросы одновременно в разных потоках, они могут мешать друг другу, потому что я изменил некоторые настройки.ruby ​​RestClient для каждого запроса настроек

Я что-то упустил? Есть ли обходной путь, так как это кажется мне серьезным ограничением.

Обновление: На самом деле, глядя на класс Request, я считаю, что только конфигурация прокси-сервера и before_execution_procs являются глобальной конфигурацией. Скорее всего, с before_execution_procs возможны обходные пути. Если вы знаете, как установить их для каждого запроса, я был бы благодарен.

пример:

(1..10).each { 
    Thread.new { 
    RestClient.get(..., proxy: "some proxy", before_execution_hooks: [some, array, of, hooks]) 
    } 
} 

Если я его любит:

(1..10).each { 
    Thread.new { 
    RestClient.proxy = "per request proxy" 
    RestClient.add_before_execution_proc {...} 
    RestClient.get(...) 
    } 
} 

Тогда я закончу с неизвестным прокси каждого запроса, а также с несколькими проками.

+0

Пожалуйста, покажите нам, что код не работает или что-то еще. – mudasobwa

ответ

1

Теперь вы можете установить прокси-сервер в соответствии с вариантами запроса

С RestClient::Request или RestClient::Resource, которые имеют как: прокси и: варианты before_execution_proc, которые переопределяют глобальные параметры:

Итак, следующий код должен быть поточно:

(1..10).each do 
    Thread.new do 
    RestClient::Resource.new(url, proxy: 'resquest specific', before_execution_proc: ...).get 
    # or 
    RestClient::Request.execute(method: :get, url: 'http://...', proxy: ...) 
    end 
end 
+0

Спасибо, выглядит как ': proxy' и': before_execution_proc' обрабатываются опциями в более поздней версии 'rest-client'. Но почему я должен использовать 'RestClient :: Resource'? Я не понимаю, зачем мне нужна такая обертка. – akostadinov

+0

Протестировано с 2.0.0.rc1, прокси не нужно устанавливать глобально. Принимая ответ, но все же не могу понять, почему вместо «Запроса» следует использовать «Ресурс». – akostadinov

+0

Спасибо, действительно, я использовал его так, как это уже не проверял использование запроса, я редактирую ответ так, чтобы он был полным – user4887419

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