Est-ce que Net::HTTP
prend en charge une syntaxe asynchrone?Ruby Asynchronous Net :: HTTP?
Je cherche quelque chose comme le code ci-dessous.
Le bloc obtiendrait appelé sur le thread principal après Net::HTTP
a soit reçu la réponse du serveur (dans ce cas, error
serait nil
) ou rencontre une erreur de connexion au serveur (dans ce cas, response
serait nil
) .
Net::HTTP.get('http://stackoverflow.com') do |response, error|
if error
puts "Connection error: #{error.message}"
elsif response.status_code != HTTPOK
puts "Unexpected status code: #{response.status_code}"
puts response.body
else
puts "Success!"
puts response.body
end
end
Les questions suivantes fournissent des réponses, mais je suis à la recherche d'une solution basée sur des blocs.
Ceci est un bon exemple, mais l'essai d'un double négatif semble être une mauvaise idée. Tester '== HTTP_OK' et ensuite' else' serait plus facile à suivre. À l'heure actuelle, la condition de réussite est «si ce n'est pas correct». – tadman
@tadman merci! vous avez raison, réparé ceci. Je suppose que j'ai essayé de refléter la structure du code de l'op autant que possible. –