【发布时间】:2015-05-26 07:15:14
【问题描述】:
public static ApiFactory getInstance(String url, String userName, String password) {
String sessionId = null;
client = new DefaultHttpClient();
ConstantUtil.setHostUrl(url);
ConstantUtil.setUserName(userName);
ConstantUtil.setPassword(password);
try {
request = new HttpGet(ConstantUtil.getLoginUrl());
response = client.execute(request);
final Header[] headers = response.getHeaders("Set-Cookie");
for (int i = 0; i < headers.length; i++) {
if (headers[i].toString().indexOf("JSESSIONID") > 0) {
int start = headers[i].toString().indexOf("JSESSIONID");
int end = headers[i].toString().indexOf(";");
sessionId = headers[i].toString().substring(start, end);
}
}
ConstantUtil.setLoginJsessionId(sessionId);
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
request.abort();
}
无法获得认证 myloginUrl is... String loginurl = ConstantUtil.getHostUrl() + "/j_spring_security_check?j_user="+ getUserName() + "&j_passw=" + getPassword(); 实际上我需要 jsessionId,我需要它用于以后发布 json 数据时的目的。
【问题讨论】:
-
会不会是你拿到后才设置的?到一个看起来可能不存在的无效常量?
-
为什么错了??
-
实际上这是工作代码。这是因为我手动设置会话 ID。但是我在这里得到的会话 ID 是 ConstantUtil.setLoginJsessionId(sessionId) 是错误的,这是因为我在做 ConstantUtil.setLoginJsessionId("JSESSIONID=mzJzfKOYfK1DKZr4Yiua5g**");
标签: java httpclient