gpt4 book ai didi

java - java上http post方法、HttpServletResponse和cookie的问题

转载 作者:行者123 更新时间:2023-12-01 19:18:36 24 4
gpt4 key购买 nike

一开始,我发送了一个重定向,并在 HttpServletResponse 上设置了 cookie,但后来我决定不重定向,只获取从 servlet 提供的信息,但问题是我无法在此 post 方法上设置 cookie。

所以我想知道如何使用postmethod设置cookie以及是否有办法处理HttpServletResponse中的cookie

String temp=null;
HttpClient client = new HttpClient();
client.getParams().setParameter("http.useragent", "Oauth Data Requester");
BufferedReader br = null;
PostMethod method = new PostMethod(ADDRESS+"/SampleProvider");
//Aqui ainda enviamos o XML inteiro como parametro
method.addParameter("p", "\"java2s\"");
try{
int returnCode = client.executeMethod(method);
if(returnCode == HttpStatus.SC_NOT_IMPLEMENTED) {
System.err.println("no post method found");
} else {
temp=method.getResponseBodyAsString();
}
} catch (Exception e) {
System.err.println(e);
} finally {
method.releaseConnection();
if(br != null) try { br.close(); } catch (Exception e) {}
}
return temp;
}

最佳答案

在servlet中,您可以使用 HttpServletRequest#getCookies() 获取客户端发送的所有cookie .

Cookie[] cookies = request.getCookies();
// ...

您可以使用 HttpServletResponse#addCookie() 在响应上设置 cookie .

response.addCookie(new Cookie(name, value));
<小时/>

在 HttpClient 3.x 中(我假设您使用的是 3.x,因为 4.x 上不再存在 executeMethod() 方法),您可以将 cookie 添加到HttpState,然后在HttpClient执行该方法之前将其设置。

HttpState state = new HttpState();
state.addCookie(new Cookie(".example.com", "name", "value"));
HttpClient client = new HttpClient();
client.setState(state);
// ...

执行该方法后,您可以通过以下方式获取(更新的)cookie

Cookie[] cookies = client.getState().getCookies();
// ...

关于java - java上http post方法、HttpServletResponse和cookie的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5518014/

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