This repository has been archived by the owner on Aug 31, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
Plum::Client (日本語)
rhenium edited this page Nov 8, 2015
·
2 revisions
client = Plum::Client.start("http2.rhe.jp", 443)
res = client.post("/inspect", "data", headers: { "user-agent" => "plum-clinet" }) # リクエストが完了(レスポンスボディの受信が完了)するまでブロックする
client.close # 即座に(async リクエストの完了を待たずに)GOAWAY フレームを送信し HTTP/2 コネクションを切断する
p res.finished? # => true レスポンスボディの受信が完了した
p res.status # => "200"
p res.headers # => { ":status" => "200", "server" => "Plum/0.1.3", ... }
responses = Plum::Client.start("http2.rhe.jp", 443) { |client|
10.times.map { |i|
client.get_async("/inspect?arg=#{i}", headers: { "cookie" => "a=b" })
}
} # ブロック内で発行されたリクエストの完了を待ち HTTP/2 コネクションを切断する
responses.each do |res|
p res.body
end
puts "start"
Plum::Client.start("http2.rhe.jp", 443) { |client|
client.get_async("/sleep?sec=0.5") { |res| # レスポンスヘッダを受信した際にコールバックされる
puts "sleep0.5: headers"
res.on_chunk { |chunk|
# DATA フレームを受信した際にコールバックされる
}
}
client.get_async("/sleep?sec=3") { |res|
puts "sleep3: headers"
}
}
# =>
# 00:00.0) start
# 00:00.5) sleep0.5: headers
# 00:03.0) sleep3: headers