开发者

Problems with http post method, HttpServletResponse and cookies on java

At the beginning i was sending a redirect with the cookies set on HttpServletResponse but later i decided to not redirect and only get the information gave from the servlet but the problem is i can't set the cookies on this post method.

So i would like to know how to set cookies with postmethod and if there is a way to process the cookies that are in HttpServletResponse

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 {
   开发者_StackOverflow   method.releaseConnection();
      if(br != null) try { br.close(); } catch (Exception e) {}
    }
    return temp;
}


In servlets, you can get all cookies sent by the client using HttpServletRequest#getCookies().

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

And you can set cookies on the response using HttpServletResponse#addCookie().

response.addCookie(new Cookie(name, value));

In HttpClient 3.x (I assume that you're using 3.x, because the executeMethod() method isn't present on 4.x anymore), you can add cookies to the HttpState and then set it on HttpClient before executing the method.

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

After executing the method, you can get the (updated) cookies by

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

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜