我用IE访问如下地址并且在客户端已经生成了cookie的,但是我用httpClient访问,服务器就是读取不到这个已经生成的cookie,这个是怎么回事呀?
//构造HttpClient的实例
HttpClient httpClient = new HttpClient();
//创建GET方法的实例
GetMethod getMethod = new GetMethod("http://www.ibm.com");
//使用系统提供的默认的恢复策略
getMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER,
new DefaultHttpMethodRetryHandler());
try {
//执行getMethod
int statusCode = httpClient.executeMethod(getMethod);
if (statusCode != HttpStatus.SC_OK) {
System.err.println("Method failed: "
+ getMethod.getStatusLine());
}
//读取内容
byte[] responseBody = getMethod.getResponseBody();
//处理内容
System.out.println(new String(responseBody));
} catch (HttpException e) {
//发生致命的异常,可能是协议不对或者返回的内容有问题
System.out.println("Please check your provided http address!");
e.printStackTrace();
} catch (IOException e) {
//发生网络异常
e.printStackTrace();
} finally {
//释放连接
getMethod.releaseConnection();
}
难道Cookie还得自己维护,httpClient不负责维护?请达人指教一二。
//构造HttpClient的实例
HttpClient httpClient = new HttpClient();
//创建GET方法的实例
GetMethod getMethod = new GetMethod("http://www.ibm.com");
//使用系统提供的默认的恢复策略
getMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER,
new DefaultHttpMethodRetryHandler());
try {
//执行getMethod
int statusCode = httpClient.executeMethod(getMethod);
if (statusCode != HttpStatus.SC_OK) {
System.err.println("Method failed: "
+ getMethod.getStatusLine());
}
//读取内容
byte[] responseBody = getMethod.getResponseBody();
//处理内容
System.out.println(new String(responseBody));
} catch (HttpException e) {
//发生致命的异常,可能是协议不对或者返回的内容有问题
System.out.println("Please check your provided http address!");
e.printStackTrace();
} catch (IOException e) {
//发生网络异常
e.printStackTrace();
} finally {
//释放连接
getMethod.releaseConnection();
}
难道Cookie还得自己维护,httpClient不负责维护?请达人指教一二。
post.setRequestBody(new NameValuePair("cookie", cookie));
post.setRequestBody(new NameValuePair("cookie", cookie));
Cookie cookie = new Cookie();
cookie.setDomain("klgx-d-sub");
cookie.setName("CASTGC");
cookie.setPath("/EasySecuritySSO");
cookie.setValue("TGT-6-bgxl3BSgDgDZrgBSBvoVYj9NB6s7JlvhhcWJwliK2cZ2bR7r06-cas");
HttpState initState = new HttpState();
initState.addCookie(cookie);
httpClient.setState(initState);
这样倒是传到后台了,但是我想的是,怎么httpClient不是自己维护cookie吗,怎么还要我亲手set进取一个cookie呀,那么如果我想set进取我客户端一个cookie,那怎么读取客户端的cookie然后set进我的httpClient里面去呢?