我用httpclient登录某个网站后,如何跳到该网站,而不需要再登录。
http请求代码
@SuppressWarnings("finally")
public static String sendGetRequest(String requestUrl) {
long responseLength = 0; //响应长度
String responseContent = null; //响应内容
HttpClient httpClient = new DefaultHttpClient(); //创建默认的httpClient实例
HttpGet httpGet = new HttpGet(requestUrl); //创建HttpGet
try {
HttpResponse response = httpClient.execute(httpGet); //执行GET请求
HttpEntity entity = response.getEntity(); //获取响应实体
// new DefaultHttpClient().getco
if (null != entity) {
responseLength = entity.getContentLength();
responseContent = EntityUtils.toString(entity, "UTF-8");
EntityUtils.consume(entity); //Consume response content
}
System.out.println("请求地址: " + httpGet.getURI());
System.out.println("响应状态: " + response.getStatusLine());
System.out.println("响应长度: " + responseLength);
System.out.println("响应内容: " + responseContent);
} catch (ClientProtocolException e) {
//该异常通常是协议错误导致
//比如构造HttpGet对象时传入的协议不对(将"http"写成"htp")或者服务器端返回的内容不符合HTTP协议要求等
e.printStackTrace();
} catch (ParseException e) {
e.printStackTrace();
} catch (IOException e) {
//该异常通常是网络原因引起的,如HTTP服务器未启动等
e.printStackTrace();
} finally {
httpClient.getConnectionManager().shutdown(); //关闭连接,释放资源
return responseContent;
}
}
public static void main(String[] arg)throws Exception{
String url = "http://127.0.0.1:8080/mall/servlet/Login?name=wgliu&md5=da891df0afd256c4&pwd=111";
String str = RequestTest.callConnector(url);
System.out.println(str);
}
执行上面代码后 再用浏览器打开页面还是要登录
------解决方案--------------------
你httpwatch 先浏览器模拟登录看看,是不是需要什么sesseion 或者变量等等的数据。
------解决方案--------------------
当然要登录,会话用sessionid来标志,以连接为单位,你这客户端登录和你的浏览器会话一点关系都没有,即不是同一个连接,更不可能是同一个sessionid,当然要重新登录
你的问题答案:不行,不能共享,因为你即不能控制服务器返回的响应,也不能控制浏览器客户端发出去的东西