⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 httpconnmanager.java

📁 演示网站Portal单点登陆SSO的简单使用
💻 JAVA
字号:
import java.io.BufferedOutputStream;
import java.io.DataInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.ProtocolException;
import java.net.URL;

/*
 * Guo Shengxing created 2007-09-01
 * 
 * For Shang hai SSO needs
 * 
 * please use this class as follow specified:
 * 		1st: new an HttpSenderReceiver object
 * 		2nd: openConn with url
 * 		3rd: send the xml message by sendHttpRequest
 * 		4th: readResponse from server
 * 		5th: closeConn
 */
public class HttpConnManager {

	private String url = null;

	private HttpURLConnection conn = null;

	int connCount = 5;

	public HttpConnManager(String url) {
		this.url = url;
	}

	public boolean openConn() {

		int num = connCount;
		while (num != 0) {
			if (conn == null) {
				conn = createHttpUrlConn(url);
			} else {
				return true;
			}
			num--;
		}
		return false;
	}

	public void setHttpUrlConnConfig() {
		try {
			// 连接主机的超时时间(单位:毫秒)
			System.setProperty("sun.net.client.defaultConnectTimeout", "30000");
			// 从主机读取数据的超时时间(单位:毫秒)
			System.setProperty("sun.net.client.defaultReadTimeout", "30000");
			conn.addRequestProperty("content-type", "text/xml;charset=UTF-8");
			//conn.setRequestProperty( "Cookie", "JSESSIONID=" + request.getSession().getId() );
			conn.setDoInput(true);
			conn.setUseCaches(false);
			conn.setDoOutput(true);
			conn.setRequestMethod("POST");

		} catch (ProtocolException e) {
			System.out.println("setHttpUrlConnConfig err:\n" + e);
		}
	}

	public void closeConn() {
		if (conn != null) {
			conn.disconnect();
		}
		conn = null;
	}

	private HttpURLConnection createHttpUrlConn(String url) {
		try {
			return (HttpURLConnection) new URL(url).openConnection();
		} catch (IOException ex) {
			System.out.println("DFJDLRJE" + ex);
		}
		return null;
	}

	public boolean isGetUrlConn() {
		return (conn == null) ? false : true;
	}

	public boolean sendHttpRequest(String xmlMessage) {
		if (xmlMessage == null) {
			System.out
					.println("sendHttpRequest get invalid parameter:xmlMessage"
							+ xmlMessage);
			return false;
		}
		boolean con = isGetUrlConn();
		if (con == false) {
			System.out.println("发送消息失败");
			return false;
		}

		System.out.println("connect=" + con);
		System.out.println("xmlMessage=\n" + xmlMessage);

		try {
			conn.setDoOutput(true);
			OutputStream os = conn.getOutputStream();
			BufferedOutputStream outStream = new BufferedOutputStream(os);
			outStream.write(xmlMessage.getBytes());
			outStream.flush();
			outStream.close();
			return true;
		} catch (IOException e) {
			System.out.println(e);
		}
		return false;
	}

	public String readResponse() {
		/* 获取服务器端返回信息 */
		String stringValue = null;
		try {
			InputStream inStream = conn.getInputStream();
			DataInputStream in = new DataInputStream(inStream);
			stringValue = in.readUTF();
			in.close();
		} catch (IOException e) {
			System.out.println(e);
		}
		System.out.println("###[" + stringValue + "]###");
		return stringValue;
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -