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

标签 java servlets cookies

一开始,我发送了一个重定向,并在 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/

相关文章:

c# - 如何从 Android 连接到 FTP 服务器?

java - 如何知道上传的文件是否是图像

php - 如何删除 codeigniter 上的 cookie

javascript - 301 重定向期间 Google Analytics cookie _ga 会发生什么情况

java - Hibernate 标识符生成异常 : unrecognized id type : uuid-binary

java - 如何在 Maven 中使用来自 Maven 中央仓库的特定(非默认)jar? (配置单元执行)

java - 编写一个 Servlet 检查 JSP 是否存在,如果不存在则转发给另一个 JSP

cookies - 使用带有 cookie 的 Spring Security 3

java - 所有字段都需要添加@Element注解吗?

java - JRebel:javax.servlet.ServletException:javax.servlet.ServletException:过滤请求失败