Как установить несколько файлов cookie в одном ответе Webrick? - PullRequest
1 голос
/ 17 мая 2019

Я использую Webrick для проверки своего HTTP-клиента, и мне нужно проверить, как он получает и устанавливает файлы cookie.

Википедия предоставляет пример такого ответа:

HTTP/1.0 200 OK
Content-type: text/html
Set-Cookie: theme=light
Set-Cookie: sessionToken=abc123; Expires=Wed, 09 Jun 2021 10:18:14 GMT
...

но если я сделаю

server.mount_proc ?/ do |req, res|
  res["set-cookie"] = %w{ 1=2 2=3 }

, то весь массив превратится в один cookie: "[\"1=2\", \"2=3\"]"

А затем в WEBrick::HTTPResponse исходный код я снова увижу@header = Hash.new это, вероятно, означает, что вы не можете повторить клавишу заголовка.

Разве это невозможно?!

UPD:

Это оставляет меня нетнадежда:

1 Ответ

1 голос
/ 17 мая 2019

Вместо res[...]= следует использовать другой метод:

res.cookies.push WEBrick::Cookie.new("1", "2")
res.cookies.push WEBrick::Cookie.new("3", "4")
res.cookies.push WEBrick::Cookie.new("1", "5")
...