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

📄 web.java

📁 实现中国联通网站反向订购和退订的接口
💻 JAVA
字号:
package com.wireless.sms.sgip.http;

import com.wireless.sms.sgip.http.global.UN_Web;
import com.wireless.sms.sgip.http.global.WebConfig;
import com.wireless.sms.sgip.http.global.WebOrder;
import com.wireless.sms.sgip.http.global.WebSubscription;

/**
 * 基于联通短信业务网站反向点播、订购请求实现的接口类
 * @used.example:
 * <p> UN_Web uw = Web.getWebTemp(0);//获得一个UN_Web接口实现类的实例之一:WebOrder(点播请求)和WebSubscription(订购请求)</p>
 * <p> uw.setServiceTag("T");//设置用户操作指令</p>
 * <p> uw.setSPNumber("8009");//设置SPnumber</p>
 * <p> uw.setUserNumber("13426221080");//设置用户手机号码</p>
 * <p> uw.setEncodeKey("27jrWz2sxrVbR+pnyg6jWHhgNk4sZo46");//设置密钥</p>
 * <p> uw.setAccessTime(WebConfig.getTime("yyyy-MM-dd HH:mm:ss"));//设置用户操作时间</p>
 * <p> Web web = Web.getInstance("http://220.194.49.19:9555/WebOrder.aspx");//必须设置目的地址URL获得一个web实例</p>
 * <p> String statusCode = web.process(uw, true);//开始发送反向请求,同时返回请求结果</p>
 * @version 1.0
 * @author mazy
 *
 */
public class Web {
	private String requestURL = "";

	private static Web instance = null;

	private Web() {
	}

	/**必须设置请求地址URL*/
	public static Web getInstance(String requestURL) {
		if (instance == null) {
			instance = new Web();
		}
		instance.requestURL = requestURL;
		return instance;
	}

	/**
	 * 开始处理请求:向请求地址发送反向请求
	 * @param uw -- 请求携带的bean类
	 * @param encode_flag -- 是否再进行IE编码,此部分可能会根据不同联通的要求而并不同,一般设置为true
	 */
	public String process(UN_Web uw, boolean encode_flag) {
		String content = "";
		if (uw instanceof WebOrder) {
			WebOrder _uw = (WebOrder) uw;
			content =  _uw.getSPNumber()
					+ "==" + _uw.getAccessTime() + "=="
					+ (encode_flag?encoding(_uw.getEncodeStr()):_uw.getEncodeStr());
//			System.out.println(content);
		} else if (uw instanceof WebSubscription) {
			WebSubscription _uw = (WebSubscription) uw;
			content =  _uw.getSPNumber()
			+ "==" + _uw.getAccessTime() + "=="
			+ (encode_flag?encoding(_uw.getEncodeStr()):_uw.getEncodeStr());
//			System.out.println(content);
		}
		return Get_Request.request(requestURL, content);
	}

	/**获得一个网站订购的实例,默认为点播请求:
	 * @param mode = 0 点播请求 =1 订购请求
	 * @return UN_Web 返回实现该接口的两个bean的实例之一:WebOrder(点播请求)和WebSubscription(订购请求)
	 * */
	public static UN_Web getWebTemp(int mode) {
		if (mode == 1) {
			return new WebSubscription();
		}
		return new WebOrder();
	}

	public String getRequestURL() {
		return requestURL;
	}

	/**请求地址,必须设置项目*/
	public void setRequestURL(String requestURL) {
		this.requestURL = requestURL;
	}

	/**使用IE编码*/
	public static String encoding(String s) {//%E4%B8%AD%E6%8A%A5%E8%82%A1%E7%A5%A8%E4%BF%A1%E6%81%AF
		byte[] b;
		try {
			b = s.getBytes("UTF8");
		} catch (java.io.UnsupportedEncodingException e) {
			//应该不会执行到这里   
			e.printStackTrace();
			return null;
		}
		StringBuffer sb = new StringBuffer();
		for (int i = 0; i < b.length; i++) {
			int c = 0xff & (int) b[i];
			if ((c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z')
					|| (c >= '0' && c <= '9') || c == '_' || c == '.'
					|| c == '-' || c == '*')
				sb.append((char) c);
			else if (c == ' ')
				sb.append("%20");//标准上使用'+',但好像IE里都用%20   
			else {
				sb.append('%');
				String s1 = Integer.toHexString(c).toUpperCase();
				if (s1.length() == 1)
					sb.append('0');
				sb.append(s1);
			}
		}
		return sb.toString();
	}

	/**IE解码*/
	public static String decoding(String s) {
		java.io.ByteArrayOutputStream out = new java.io.ByteArrayOutputStream();
		for (int i = 0; i < s.length(); i++) {
			int c = s.charAt(i);
			if (c != '%')
				out.write(c);
			else {
				out.write(Integer.parseInt(s.substring(i + 1, i + 3), 16));
				i += 2;
			}
		}
		try {
			return new String(out.toByteArray(), "UTF8");
		} catch (java.io.UnsupportedEncodingException e) {
			//应该不会执行到这里   
			e.printStackTrace();
			return null;
		}
	}

	public static void main(String[] args) {
		UN_Web wo = Web.getWebTemp(0);
		wo.setServiceTag("t");
		wo.setUserNumber("13426221080");
		wo.setEncodeKey("27jrWz2sxrVbR+pnyg6jWHhgNk4sZo46");
		wo.setAccessTime(WebConfig.getTime("yyyy-MM-dd HH:mm:ss"));
		String resp = Web.getInstance("http://220.194.49.19:9555/WebOrder.aspx").process(wo, true);
		System.out.println("resp=" + resp);
//		System.out.println(encoding("KIQWNWEQREQWK921343KJASDFASD"));
	}
}

⌨️ 快捷键说明

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