日期:2014-05-17  浏览次数:20766 次

C#连JAVA的有安全信息头(soap)webservice问题 ?100分webservice带消息头的请求写法
本帖最后由 tys101582 于 2012-08-11 10:45:28 编辑
最近对方提供了一个接口文档给我,没链过这样的有安全信息头的服务,请高手帮忙指点一下怎么写,好吗?

接口说明如下:
按SGIP协议进行通讯;

1.3 接口规范
测试接口地址配置文件
http://192.168.0.168/services/SMSSendTask?wsdl
 
信息进行安全认证:
webservice的头域认证,head里面包括如下几个字段
名称 类型 备注
sequence int 范围从0到Int的上限,然后尾追回0,周而复始。Sequence每次发送后必须自增,如果系统发现当前已发送的sequence大于请求的sequence,系统认为此媒体信息非法(只有当SP的安全认证为高时才验证sequence)
spid String 短信平台分配的SPID
timestamp String 格式yyyyMMddHHmmss(14位,24小时制),时间戳必须是当前时间的则系统认为媒体信息非法
key String 格式 sequence+spid+password+ timestamp的MD5加密字符串。这里的password也是平台分配的密钥
mode int 默认填写0
info String 暂时为空

1.3.1 短信下行接口
函数功能
该接口用于SP提交短信下发任务。
函数说明
MediaResultBean[] sendMediaTask(ExtMediaTaskBean[] extMediaTasks)
参数说明:

参数 如何理解
extMediaTasks 媒体消息数组




MediaResultBean说明:
参数 如何理解 类型
index 为0的时候才是处理成功,其他都是失败 int
mediaTaskID 获取状态报告的ID,为0时没有是不需要状态报告 String
resultNo 只有返回10000是才是正确,其他的都是失败 String
ExtMediaTaskBean说明:
参数 如何理解 类型 必填
sendNo 发送方(默认为114) String Y
receiverInfo 接收方 String N
content 发送内容 String Y
subject 主题 String Y
staffNo 提交人工号 String N
sendTime 发送时间 格式为:(yyyy-MM-dd HH:mm:ss) Date N
priority 优先级
1008001:低
1008002:中
1008003:高 String Y
spId SPID String Y
接口调用说明
 接口调用时,会对SP的信息进行安全认证。



我在C#中引用了这个服务,但是不知在方法前如何加这个信息安全头head,请高手指点,对方也不提供DEMO,唉。

void fun1()
        {
            sms_sp.Web_SmsSP.SMSSendTask smsst = new sms_sp.Web_SmsSP.SMSSendTask();

            sms_sp.Web_SmsSP.ExtMediaTaskBean[] emtb_arr = new sms_sp.Web_SmsSP.ExtMediaTaskBean[3];
            emtb_arr[0] = new sms_sp.Web_SmsSP.ExtMediaTaskBean();
            //emtb_arr[0].sendTime = ....;
            //....
           

            emtb_arr[1] = new sms_sp.Web_SmsSP.ExtMediaTaskBean();
            //emtb_arr[1].sendTime = ....;
            //....;

            emtb_arr[2] = new sms_sp.Web_SmsSP.ExtMediaTaskBean();