gpt4 book ai didi

java - JAX-RS @CookieParam 值从一个请求更改为另一个请求

转载 作者:行者123 更新时间:2023-11-30 06:16:44 24 4
gpt4 key购买 nike

我正在尝试制作一个将产品添加到购物车中的资源。我正在尝试将产品添加到购物车并将购物车保存为 cookie 中的 JSON 字符串。 (这里的Cart对象有2个字段,productId和quantity)

@POST
@Path("/update")
@Produces(MediaType.APPLICATION_JSON)
public Response updateShoppingCart(@CookieParam(COOKIE_NAME) javax.ws.rs.core.Cookie cookie, Cart cart) {
NewCookie newCookie = null;
ObjectMapper mapper = new ObjectMapper();
if (cookie !=null){
try {
List<Cart> shoppingCart = mapper.readValue(cookie.getValue(), new TypeReference<List<Cart>>() {
});
//the case where there is already something in the shopping cart
//...
String jsonString = mapper.writeValueAsString(shoppingCart);
newCookie = new NewCookie(COOKIE_NAME, jsonString,"/", "", "shopping-cart", MAX_AGE, false);
} catch (IOException e) {
e.printStackTrace();
}
}else{
List<Cart> carts = new ArrayList<>();
carts.add(cart);
try {
String jsonString = mapper.writeValueAsString(carts);
newCookie = new NewCookie(COOKIE_NAME, jsonString,"/", "", "shopping-cart", MAX_AGE, false);
} catch (JsonProcessingException e) {
e.printStackTrace();
}
}
return Response.ok(newCookie).cookie(newCookie).build();
}

当我第一次运行这个时,cookie设置正确,例如它设置正确的值:[{\"productId\":1,\"quantity\":2}]如果我添加一个产品ID 1 和数量 2。问题是,当我第二次运行此命令时,作为 CookieParam 接收到的 cookie 的值不正确,在本例中为 [{\"productId\":1 。我正在使用 Postman 对此进行测试,并发送正文中包含 JSON {"productId":1, "quantity":2} 的 POST 请求。我做错了什么?

最佳答案

Cookie 必须放在 header 中,而不是正文中。像这样的东西:

Cookie: name=value; name2=value2; name3=value3

postman 请参阅:https://www.getpostman.com/docs/postman/sending_api_requests/cookies

更新:根据我的经验, postman 有时不会发送 cookie。尝试将postman命令转换为curl命令(引用:https://www.getpostman.com/docs/postman/sending_api_requests/generate_code_snippets),然后确保curl命令在 header 或-b参数中具有cookie(引用:https://curl.haxx.se/docs/manpage.html)

关于java - JAX-RS @CookieParam 值从一个请求更改为另一个请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49036738/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com