package bce.client.servicers;
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLEncoder;
import javax.net.ssl.HttpsURLConnection;
public class ClientBCEServicer {
private ClientBCEServicer() {
}
/**
* 客户端登录
*
* @param userName 用户名
* @param password 密码
* @return 两个登录信息,[0]:登录成功/失败反馈信息,[1]:JSESSIONID
*/
public static String[] login(String userName, String password) {
String[] loginInfo = new String[2];
StringBuffer feedback = new StringBuffer();
try {
URL url = new URL("https://localhost:8443/bceserver/LoginServlet.sl");
HttpsURLConnection conn = (HttpsURLConnection) url.openConnection();
conn.setDoInput(true);
conn.setDoOutput(true);
conn.setRequestMethod("POST");
conn.setUseCaches(false);
conn.setInstanceFollowRedirects(false);
conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
conn.connect();
DataOutputStream out = new DataOutputStream(conn.getOutputStream());
StringBuilder content = new StringBuilder();
content.append(URLEncoder.encode("u", "UTF-8")).append("=")
.append(URLEncoder.encode(userName, "UTF-8")).append("&")
.append(URLEncoder.encode("p", "UTF-8")).append("=")
.append(URLEncoder.encode(password, "UTF-8")).append("&")
.append(URLEncoder.encode("flag", "UTF-8")).append("=")
.append(URLEncoder.encode("1", "UTF-8"));
out.writeBytes(content.toString());
out.flush();
out.close();
BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8"));
String tempBuf;
while ((tempBuf = reader.readLine()) != null) {
feedback.append(tempBuf);
continue;
}
reader.close();
loginInfo[0] = feedback.toString();
String key = "";
String sessionId = "";
if (conn != null && feedback.toString().startsWith("Welcome")) {
for (int i = 1; (key = conn.getHeaderFieldKey(i)) != null; i++) {
if (key.equalsIgnoreCase("set-cookie")) {
sessionId = conn.getHeaderField(key);
sessionId = sessionId.substring(0, sessionId.indexOf(";"));
break;
}
}
}
loginInfo[1] = sessionId;
conn.disconnect();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return loginInfo;
}
}