0

vert.xを使用してアプリケーションを作成しています。組み込みの Cookie サポートはまだないため、「putHeader()」メソッドを使用して手動で Cookie を設定する必要があります。

ここで、いくつかの Cookie を設定したいので、次のように記述します。

 req.response.putHeader("Set-Cookie", "aaa=111; path=/")
 req.response.putHeader("Set-Cookie", "bbb=222; path=/")
 req.response.putHeader("Set-Cookie", "ccc=333; path=/")

しかし、vert.x が「Set-Cookie」を 1 つしか送信しないことがわかりました。

 Set-Cookie ccc=333; path=/

何かを誤解しているかどうかはわかりません。サーバーは一度に複数の「Set-Cookie」コマンドを送信できますか? この方法でマルチ Cookie を送信するのは正しいですか?

4

3 に答える 3

2

netty のio.netty.handler.codec.http.ServerCookieEncoder機能を使用します。

req.response.putHeader("Set-Cookie", 
        ServerCookieEncoder.encode(new DefaultCookie("aaa", "111")))

多くの便利なメソッド シグネチャがあります。

ServerCookieEncoder.encode(Cookie cookie)
ServerCookieEncoder.encode(Cookie... cookies)
ServerCookieEncoder.encode(Collection<Cookie> cookies)
ServerCookieEncoder.encode(Iterable<Cookie> cookies)
于 2014-11-07T14:45:18.197 に答える
1

いいえ、HashMapにヘッダーが格納されているため、そのままでは不可能だと思います: https ://github.com/purplefox/vert.x/blob/master/src/main/java/org/vertx/java/core/http /impl/DefaultHttpServerResponse.java#L81

あなたはできる:

  • 新しい問題を開く
  • 既存の問題にコメントするhttps://github.com/purplefox/vert.x/issues/89
  • ソースをチェックアウトし、重複キーを許可するマップを使用する重複キーを使用 したマップの実装(たとえば、ロケーションヘッダーは1回だけである必要があります。
  • DefaultHttpServerResponseを拡張し、それを統合する方法を確認してください
  • たとえば、Cookieをマージして手動で処理します。

    req.response.putHeader( "Set-Cookie"、 "aaa = 111&bbb = 222&ccc = 333; path = /")

于 2012-06-23T19:51:29.263 に答える
0

1 つの回避策があります。

req.response()
.putHeader("Set-Cookie", "some=cookie;max-age=1000;path=/;HttpOnly"
    +"\nSet-Cookie: next=cookie"
    +"\nSet-Cookie: nnext=cookie;HttpOnly");
于 2014-12-02T08:22:23.287 に答える