对单个站点的多个GET请求(规范)(java)

对单个站点的多个GET请求(规范)(java),java,cookies,get,Java,Cookies,Get,嗨,我正在尝试向单个连接发出2个GET请求。即 HttpGet get1 = new HttpGet("http://www.google.com/search?q=HelloWorld"); HttpGet get2 = new HttpGet("http://www.google.com/search?q=SecondSearch"); HttpResponse response = null; response = client.execute(get1); response = cl

嗨,我正在尝试向单个连接发出2个GET请求。即

HttpGet get1 = new HttpGet("http://www.google.com/search?q=HelloWorld");
HttpGet get2 = new HttpGet("http://www.google.com/search?q=SecondSearch");

HttpResponse response = null;

response = client.execute(get1);
response = client.execute(get2);
我想从第二次处决中得到尸体。显然,这是失败的,因为它说必须先释放连接。我需要维护准确的会话-例如,如果我导航到第一步是登录的站点,我需要导航到具有相同cookie的任何后续页面

可能是我做错了一件非常简单的事情

您需要使用


在上面的代码中,两个client2都将重新使用client1请求中的cookies。

。非常感谢。我还注意到我实际上可以:1)执行get 2)从第一个请求中获取bufferedstream 3)关闭bufferedstream,从而触发断开连接4)执行第二个get 5)相应地获取信息。但正如您所展示的,cookie管理是一种更干净的做事方式。感谢您事实上,我已经从apache下载了最新的httpclient,它似乎不包含httpclient.SetCookieStore,因为某些原因它不在httpclient接口中,它是AbstractHttpClient的成员(它是DefaultHttpClient的父级)。
CookieStore cookieStore = new BasicCookieStore();

DefaultHttpClient client1 = new DefaultHttpClient();
client1.setCookieStore(cookieStore);
HttpGet httpGet1 = new HttpGet("...");
HttpResponse response1 = client1.execute(httpGet1);

DefaultHttpClient client2 = new DefaultHttpClient();
client2.setCookieStore(cookieStore);
HttpGet httpGet2 = new HttpGet("...");
HttpResponse response2 = client2.execute(httpGet2);