本文档提供了中国联通SGIP(SMS Gateway Interface Protocol)协议在Java环境下的实现方法及详细接口说明,适用于开发者进行短消息服务开发。
联通SGIP协议接口文档(JAVA版)提供了给SP使用的API包名为spApi.jar,它包含以下类:
- SGIP_Command.class,
- Seq.class,
- MsgHead.class,
- Bind.class,
- BindResp.class,
- Unbind.class,
- UnbindResp.class,
- Submit.class,
- SubmitResp.class,
- Deliver.class,
- DeliverResp.class,
- Report.class, 和
- ReportResp.class。
在使用此API前,请确保正确设置CLASSPATH环境变量以包含spApi.jar包。
《联通SGIP协议接口文档(JAVA版)》详解
该文档主要针对SP提供了基于SGIP1.1协议标准的Java API,使服务提供商能够通过英斯克iDAP短信网关向终端用户提供短信发送和接收功能。本段落档详细介绍了如何使用spApi.jar中的各类进行操作。
### 一、API包结构与使用
spApi.jar包含了一系列关键类,这些类对于SP与联通短信中心的交互至关重要:
- SGIP_Command.class: 处理SGIP协议命令。
- Seq.class: 管理序列号。
- MsgHead.class: 包含消息头信息。
- Bind和BindResp:绑定操作及响应
- Unbind和UnbindResp:解绑操作及响应
- Submit和SubmitResp:发送短信及其响应;
- Deliver和DeliverResp:接收短信及其响应;
- Report和ReportResp:上报与相应。
在使用这些类之前,请确保已经将spApi.jar添加到CLASSPATH环境变量中,以便Java虚拟机能够找到并加载它们。
### 二、SGIP_Command详解
SGIP_Command是整个API的核心,负责处理来自网关的命令:
- 构造函数:`public SGIP_Command()` 创建一个空对象用于后续操作。
- 方法: `public SGIP_Command read(InputStream in)` 接收网关发送来的数据流(InputStream)并可能抛出IOException。
- 方法: `public int getCommandID()` 返回接收到的命令标识,以便于识别处理不同类型的命令。
示例代码展示了如何使用SGIP_Command类接收和处理命令:
```java
Socket so = null;
OutputStream out = null;
InputStream input = null;
so = new Socket(192.168.0.30, 8801);
out = new DataOutputStream(so.getOutputStream());
input = new DataInputStream(so.getInputStream());
SGIP_Command sgip = new SGIP_Command(); // 创建空的SGIP_Command对象
SGIP_Command tmp = null;
try {
tmp = sgip.read(input); // 接收命令
if (tmp.getCommandID() == SGIP_Command.ID_SGIP_BIND_RESP) {
BindResp resp = (BindResp) tmp; // 类型转换为绑定响应对象
resp.readBody(); // 解析响应体
System.out.println(tmp.getSeqno_1());
System.out.println(tmp.getSeqno_2());
System.out.println(tmp.getSeqno_3());
System.out.println(resp.GetResult());
}
} catch (IOException e) {
e.printStackTrace();
}
```
该示例首先建立了一个到网关的Socket连接,然后使用SGIP_Command的read方法接收命令。如果接收到的是绑定响应(ID_SGIP_BIND_RESP),则进一步解析并输出相关信息。
总结来说,联通SGIP协议接口文档为SP提供了与短信中心交互的功能模块,通过spApi.jar中的类和方法实现发送、接收、绑定及解绑等功能。正确理解和使用这些API能使服务提供商高效稳定地接入联通的短信服务网络。