1

私は CookieManager でいくつかの使用法をテストしていますが、逆シリアル化された Cookie を CookieHandler に渡すと、CookieHandler が Cookie マネージャーに配置するために使用する形式が、渡したものと同じではないことに気付きました。

サンプルコード:

import org.springframework.http.HttpHeaders;

import java.io.IOException;
import java.net.*;
import java.util.*;

public class MainTest {

    public static void main(String[] args) throws URISyntaxException, IOException {

        HttpHeaders headers = new HttpHeaders();

        headers.add("Set-Cookie", "TEST=%7B%22keyType%22%3A%22abc%22%2C%22keyValue%22%3A%221.0%22%7D;Max-Age=600;Path=/;Version=0;SameSite=None");
        headers.add(HttpHeaders.ACCEPT_LANGUAGE, "en-US,en;q=0.9");

        System.out.println("headers-> " + headers);

        String uri = "http://test.com/test";
        CookieManager cookieHandler = new CookieManager();
        CookieHandler.setDefault(cookieHandler);

        URI uri1 = new URI(uri);
        CookieHandler.getDefault().put(uri1,headers);

        Map<String, List<String>> cookies = CookieHandler.getDefault().get(uri1,headers);
        System.out.println("returned-> " + cookies);
    }
}

出力は次のとおりです。

headers-> [Set-Cookie:"TEST=%7B%22keyType%22%3A%22abc%22%2C%22keyValue%22%3A%221.0%22%7D;Max-Age=600;Path=/;Version=0;SameSite=None", Accept-Language:"en-US,en;q=0.9"]
returned-> {Cookie=[$Version="1", TEST="%7B%22keyType%22%3A%22abc%22%2C%22keyValue%22%3A%221.0%22%7D";$Path="/";$Domain="test.com"]}

なぜフォーマットが変わるのですか?シリアル化されたCookieも渡しても変化します

4

1 に答える 1