📄 builder_manage.java
字号:
package cn.netjava.lbs.le;
import cn.netjava.lbs.NetJava_LBS_Server;
/**
* 创建发出请求的XML
* Title: LBS服务接口
* Copyright: Copyright (c) 2005
* Company: 蓝杰实训
* @author www.NetJava.cn
* @version 1.0 1.build_Req_SLIS:立即定位服务SLIS(Standard Location Immediate Service)
* 2.build_Req_ELIS:紧急定位服务ELIS(Emergency Location Immediate Service)
* 3.build_Req_TLRS:紧急定位服务ELIS(Emergency Location Immediate Service)
* 4.L_Trig_End:结束跟踪定位
*/
public class Builder_Manage {
public Builder_Manage() {
}
public static void main(String[] args) throws Exception {
Builder_Manage mr = new Builder_Manage();
WebSendRequest webSend = new WebSendRequest();
Builder_req result;
AttributeRequestParaBean rb = new AttributeRequestParaBean();
/** ******************************************* */
rb.sycnOrAsycn = true;
result = mr.build_Req_SLIS(rb);
String q_str = result.toXMLStr();
// Write2LogFile.write2AloneLog("同步自己_请求.xml",q_str );
String lbsResult = webSend.connectURL(NetJava_LBS_Server.lbsServerURL, q_str);
// Write2LogFile.write2AloneLog("同步自己_结果.xml",lbsResult);
System.out.println(lbsResult);
// System.out.println(req_SLIR);
// rb.sycnOrAsycn=false;
// result= mr.L_im_Self(rb);
// Write2File.writeToTodayLog("异步自己.xml",result.toXMLStr());
// /**********************************************/
// rb.sycnOrAsycn=true;
// result= mr.L_im_Other(rb);
// Write2File.writeToTodayLog("同步别人.xml",result.toXMLStr());
// rb.sycnOrAsycn=false;
// result= mr.L_im_Other(rb);
// Write2File.writeToTodayLog("异步别人.xml",result.toXMLStr());
// /**********************************************/
rb.selfOrOther = true;
// result= mr.L_eme_lbs(rb);
// String q_str=result.toXMLStr();
// Write2File.writeToTodayLog("同步自己_请求.xml",q_str );
// String lbsResult=webSend.connectURL(CfgApp.serverURL ,q_str);
// Write2File.writeToTodayLog("同步自己_结果.xml",lbsResult);
// System.out.println(lbsResult);
// Write2File.writeToTodayLog("紧急自己.xml",result.toXMLStr() );
// rb.selfOrOther=false;
// result= mr.L_eme_lbs(rb);
// q_str=result.toXMLStr();
// Write2File.writeToTodayLog("同步自己_请求.xml",q_str );
// lbsResult=webSend.connectURL(CfgApp.serverURL ,q_str);
// Write2File.writeToTodayLog("同步自己_结果.xml",lbsResult);
// System.out.println(lbsResult);
// Write2File.writeToTodayLog("紧急别人.xml",result.toXMLStr() );
// /**********************************************/
// rb.selfOrOther=true;
// result= mr.L_Trig_lbs(rb);
// Write2File.writeToTodayLog("跟踪自己.xml",result.toXMLStr());
// rb.selfOrOther=false;
// result= mr.L_Trig_lbs(rb);
// Write2File.writeToTodayLog("跟踪别人.xml",result.toXMLStr());
// /**********************************************/
// result= mr.L_Trig_End(rb);
// Write2File.writeToTodayLog("结束跟踪.xml",result.toXMLStr());
}
// public ReportLBS test(){
// AttributeRequestParaBean ab=new AttributeRequestParaBean() ;
// WebSendRequest webSend=new WebSendRequest ();
// String srcXML= webSend.connectURL(CfgApp.serverURL
// ,build_Req_SLIS(ab).toXMLStr() );
// Report_SLIA report=new Report_SLIA() ;
// report.setSrcXML(srcXML) ;
// return report;
// }
/**
* 立即定位服务SLIS(Standard Location Immediate Service) 发送立即定位请求:同步/异步 自己/别人
*
* @param rb
* RequestParaBean:请求参数对象
* @return Builder_req:将要发送的清求包
*/
public Builder_req build_Req_SLIS(AttributeRequestParaBean rb) {
Builder_req req = null;
if (rb.sycnOrAsycn) {// 同步
if (rb.selfOrOther) {// 自己
req = L_im_Self(rb);
} else {// 别人
req = L_im_Other(rb);
}
} else {// 异步
if (rb.selfOrOther) {// 自己
req = L_im_Self(rb);
} else {// 别人
req = L_im_Other(rb);
}
}
return req;
}
/**
* 紧急请求自己/别人的
*
* @param rb
* RequestParaBean
* @return LBS_xml
*/
public Builder_req build_Req_ELIS(AttributeRequestParaBean rb) {
Builder_EmeReq xml = new Builder_EmeReq();
initID(xml);
xml.setValue(AttributeDesc.msids_msid, rb.msids_msid);
xml.setValue(AttributeDesc.resp_req_type, rb.resp_req_type);
xml.setValue(AttributeDesc.eqop_hor_acc, rb.eqop_hor_acc);
xml.setValue(AttributeDesc.loc_type_type, rb.loc_type_type);
xml.setValue(AttributeDesc.prio_type, rb.prio_type);
xml.setValue(AttributeDesc.requestmode_type, rb.requestmode_type);
xml.setValue(AttributeDesc.requestor_id, rb.requestor_id);
if (rb.selfOrOther) {
xml.L_EmeSelf();
} else {
xml.L_EmeOther();
}
return xml;
}
/**
* 触发位置报告服务TLRS (Triggered Location Reporting Service)
*
* @param rb
* RequestParaBean
* @return Builder_req
*/
public Builder_req build_Req_TLRS(AttributeRequestParaBean rb) {
Builder_req req = null;
if (rb.selfOrOther) {// 自己
req = L_Trig_lbs(rb);
} else {// 别人
req = L_Trig_lbs(rb);
}
return req;
}
/**
* 结束跟踪定位
*
* @param rb
* RequestParaBean
* @return LBS_xml
*/
public Builder_req L_Trig_End(AttributeRequestParaBean rb) {
Builder_TrigReq xml = new Builder_TrigReq();
initID(xml);
xml.setValue(AttributeDesc.tlrsr_req_id, rb.tlrsr_req_id);
xml.L_TrigEnd();
return xml;
}
/**
* 打包同步/异步立即定位自己的XML
*
* @param rb
* RequestParaBean
* @return LBS_xml
*/
private Builder_req L_im_Self(AttributeRequestParaBean rb) {
Builder_imReq xml = new Builder_imReq();
initID(xml);
xml.setValue(AttributeDesc.msids_msid, rb.msids_msid);
xml.setValue(AttributeDesc.resp_req_type, rb.resp_req_type);
xml.setValue(AttributeDesc.eqop_hor_acc, rb.eqop_hor_acc);
xml.setValue(AttributeDesc.loc_type_type, rb.loc_type_type);
xml.setValue(AttributeDesc.prio_type, rb.prio_type);
xml.setValue(AttributeDesc.requestmode_type, rb.requestmode_type);
if (rb.sycnOrAsycn) {
xml.L_SyncSelf();
} else {
xml.setValue(AttributeDesc.pushaddr_url, rb.pushaddr_url);
xml.setValue(AttributeDesc.pushaddr_pwd, rb.pushaddr_pwd);
xml.setValue(AttributeDesc.pushaddr_id, rb.pushaddr_id);
xml.L_AsyncSelf();
}
return xml;
}
/**
* 同步或异步立即请求别人的
*
* @param rb
* RequestParaBean
* @return LBS_xml
*/
private Builder_req L_im_Other(AttributeRequestParaBean rb) {
Builder_imReq xml = new Builder_imReq();
initID(xml);
xml.setValue(AttributeDesc.msids_msid, rb.msids_msid);
xml.setValue(AttributeDesc.resp_req_type, rb.resp_req_type);
xml.setValue(AttributeDesc.eqop_hor_acc, rb.eqop_hor_acc);
xml.setValue(AttributeDesc.loc_type_type, rb.loc_type_type);
xml.setValue(AttributeDesc.prio_type, rb.prio_type);
xml.setValue(AttributeDesc.requestmode_type, rb.requestmode_type);
xml.setValue(AttributeDesc.requestor_id, rb.requestor_id);
if (rb.sycnOrAsycn) {
xml.L_SyncOther();
} else {
xml.setValue(AttributeDesc.pushaddr_url, rb.pushaddr_url);
xml.setValue(AttributeDesc.pushaddr_pwd, rb.pushaddr_pwd);
xml.setValue(AttributeDesc.pushaddr_id, rb.pushaddr_id);
xml.L_AsyncOther();
}
return xml;
}
/**
* 发起跟踪自己/别人的
*
* @param rb
* RequestParaBean
* @return LBS_xml
*/
private Builder_req L_Trig_lbs(AttributeRequestParaBean rb) {
Builder_TrigReq xml = new Builder_TrigReq();
initID(xml);
xml.setValue(AttributeDesc.msids_msid, rb.msids_msid);
xml.setValue(AttributeDesc.resp_req_type, rb.resp_req_type);
xml.setValue(AttributeDesc.eqop_hor_acc, rb.eqop_hor_acc);
xml.setValue(AttributeDesc.loc_type_type, rb.loc_type_type);
xml.setValue(AttributeDesc.prio_type, rb.prio_type);
xml.setValue(AttributeDesc.requestmode_type, rb.requestmode_type);
xml.setValue(AttributeDesc.requestor_id, rb.requestor_id);
xml.setValue(AttributeDesc.pushaddr_url, rb.pushaddr_url);
xml.setValue(AttributeDesc.pushaddr_pwd, rb.pushaddr_pwd);
xml.setValue(AttributeDesc.pushaddr_id, rb.pushaddr_id);
xml.setValue(AttributeDesc.tlrr_interval, rb.tlrr_interval);
xml.setValue(AttributeDesc.tlrr_start_time, rb.tlrr_start_time);
xml.setValue(AttributeDesc.tlrr_stop_time, rb.tlrr_stop_time);
xml.setValue(AttributeDesc.pushaddr_id, rb.pushaddr_id);
if (rb.selfOrOther) {
xml.L_TrigSelf();
} else {
xml.L_TrigOther();
}
return xml;
}
/**
* 初始化户密和业代码
*
* @param lx
* LBS_xml
*/
private void initID(Builder_req lx) {
lx.setValue(AttributeDesc.client_id, NetJava_LBS_Server.lbsClientID);
lx.setValue(AttributeDesc.client_pwd, NetJava_LBS_Server.lbsClientPWD);
lx.setValue(AttributeDesc.client_serviceid, NetJava_LBS_Server.lbsServiceID);
}
/**
* 打包同步定位自己
*
* @param msids_msid
* String:被定位手机号
* @param resp_req_type
* String:查询的响应时间要求 NO_DELAY 无定义值 延迟 LOW_DELAY 低延迟 DELAY_TOL 任意延迟
* 缺省值 DELAY_TOL
* @param eqop_hor_acc
* String:延时时间:秒
* @param loc_type_type
* String :定位类型 CURRENT 当前的位置 LAST 最近的位置 CURRENT_OR_LAST 当前或最近
* INITIAL 在紧急呼叫中,呼叫建立时的位置 缺省值 CURRENT
* @param prio_type
* String :优先级要求 NORMAL 普通 HIGH 高 缺省值 NORMAL
* @param requestmode_type
* String: /** 1.决定信令查询时是否重新更新交换机里手机的位置,主动(ACTIVE)不需要更 新位置,
* 被动(PASSIVE)需要更新位置; 2.主动和被动查询的权限校验也不相同,主动查询按移动的标准不需要鉴权
* ACTIVE:移动台用户主动查询(呼叫相关,一般是查自己) PASSIVE 移动台用户被动查询(呼叫无关,一般是查别人)
* 缺省值 PASSIVE
* @param synOrAsyn
* boolean :同步还是异步 true:同步 false:异步
*/
// :立即定位服务 (SLIR)
// <!-- Case1: 用户查找自己,同步方式-->
private static String req_SLIR = "<?xml version=\"1.0\" encoding=\"gb2312\"?> "
+ "<svc_init ver=\"1.0.0\" > "
+ "<hdr ver=\"1.0.0\"> "
+ "<client> "
+ "<id>test</id> "
+ "<pwd>test9999</pwd> "
+ "<serviceid>test</serviceid> "
+ "</client> "
+ "</hdr> "
+ "<slir ver=\"1.0.0\" res_type=\"SYNC\"> "
+ "<msids> "
+ "<msid enc=\"ASC\" type=\"MSISDN\" >13875938411</msid> "
+ "</msids> "
+ "<eqop> "
+ "<resp_req type=\"LOW_DELAY\" /> "
+ "<hor_acc>120</hor_acc> "
+ "</eqop> "
+ "<geo_info> "
+ "<CoordinateReferenceSystem> "
+ "<Identifier> "
+ "<code>4326</code> "
+ "<codeSpace>EPSG</codeSpace> "
+ "<edition>6.1</edition> "
+ "</Identifier> "
+ "</CoordinateReferenceSystem> "
+ "</geo_info> "
+ "<loc_type type=\"CURRENT_OR_LAST\" /> "
+ "<prio type = \"HIGH\" /> "
+ "</slir> "
+ "</svc_init> ";
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -