vb如何写web service的接口程序?

yonger22 2010-08-10 09:14:39
就是用vb写个小程序,把数据库中的相关数据调出后通过web service的接口方式与电信提供的
短信平台挂钩,从而可以把数据以短信方式发出.因为电信说web service方式好些.但是以前没有
做过这个,向大家请教这个应如何编写?是否有这vb写的这方面的小例子呢?
...全文
842 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
vbman2003 2010-09-02
  • 打赏
  • 举报
回复
这二天稍稍研究了下,自己了个webservices,其中包含一个.net类为参数的服务,vb6下soap成功了..
改天有空测试一下你这个服务....
yonger22 2010-08-29
  • 打赏
  • 举报
回复
装了vs2008,学vbman2003的方法可行.谢谢

(
yonger22 2010-08-12
  • 打赏
  • 举报
回复
恩,服务商有一个文挡,不过不知如何凋,你看看
3.1 下行发送短消息接口(webservice)
1) 接口定义
接口名称 SendSmsMessage
接口描述 通过该接口可为SP下发短消息
请求信息 SendSmsMessageRequest
响应信息 SendSmsMessageResponse
接口方式 webservice
接口地址 http://service.mypuc.cn:8001/InterfaceForSP/services/SoapForSP/ SendSmsMessage
2) 请求参数:
名称 说明 数据类型 长度(字节)
Authenticator 认证码,用于鉴别发送者。取值为base64 (3DES(SHA1(按照接口定义表格的字段顺序进行连接,没有任何连接符号))),3DES 算法采用接口调用者的共享密钥. String
TimeStamp 时间戳,从1970年1月1日0时开始的毫秒数 String ≤18
SPID 网信业务支撑平台颁发给SP的唯一标识 String 8
SourceAddr 源地址(源号码,可以是SP用户唯一标识,也可以为空) String 32
DestAddr 目标地址(终端号码,小灵通号码请加区号,例:02129441688) String 32
ScheduleDeliveryTime 计划下发短消息的时间
YYYY-MM-DDTHH:MM:SS
例如:2008-08-19 12:12:30
即时发送可以为空或当前时间 String 20
ValidityPeriod 短消息的最后有效期限
YYYY-MM-DDTHH:MM:SS
即时发送可以为空或当前时间 String 20
Message 短消息数据内容 String 256

3) 应答参数:
名称 说明 数据类型 长度(字节)
Authenticator 认证码,用于鉴别发送者。取值为base64 (3DES(SHA1(按照接口定义表格的字段顺序进行连接,没有任何连接符号))),3DES 算法采用接口调用者的共享密钥. String
TimeStamp 时间戳,从1970年1月1日0时开始的毫秒数 String ≤18
RespCode 响应结果
202:消息递交成功
400:Bad Request
403:Forbidden
404:Not Found
408:Request Timeout
500:Server Internal Error
503:Service Unavailable Int
MessageID 短消息标识
(和回执状态中的MessageID一致) Int

vbman2003 2010-08-12
  • 打赏
  • 举报
回复
提供的接口好象应该是sendSmsMessage,但后面的参数param弄不明白....
vbman2003 2010-08-12
  • 打赏
  • 举报
回复
我也看不明白,没有说明文档,你要问服务商....
yonger22 2010-08-12
  • 打赏
  • 举报
回复
嗯,SendSmsMessageRequest和SendSmsMessageResponse应该是个结构体。我也不知如何传值的,电信的提供商说他们客户端这边的编写他们帮不了。不过还是多谢vbman2003。不过我的电脑上没有装.net的相关软件。
对了,你用过vb通过socket方式吗?因为他们说发过来的,id,ip,port,pwd这几个测试账号是socket的,还发了这个协议写义,不过我还是不清楚如何写,那个感叹啊。
发上来给你看一下吧。
1. 企业短信中心作为服务端,各客户端连接入企业短信中心,通讯方式为TCP方式。
2. 客户端在TCP连接建立之后,需向企业短信中心发送登陆请求,通过后才可以进行发送短信和彩信动作。
3. 登陆成功后,客户端需主动并定时向企业短信中心发送心跳请求以保证TCP连接的可靠性,如果连续三次心跳请求没有响应,则应断开连接,重新建立连接并发起申请连接请求。
4. 服务端如果定期没有收到心跳请求,则认为链路中断,不能再发消息了。
5. 心跳请求刷新时间:10秒。
消息名称 消息代号 含义 取值
登陆消息 LOGIN_REQ 登陆请求 1
LOGIN_RESP 登陆响应 2
注销消息 LOGOUT_REQ 注销请求 3
LOGOUT_RESP 注销响应 4
LOGOUT_NOTICE 注销通知 5
Common消息 COMMON_NOTICE 提醒消息 6
心跳消息 ENQUIRE_REQ 链接维护心跳请求 7
ENQUIRE_ RESP 链接维护心跳响应 8
短信下行 SM_REQ 短信发送请求 31
SM_RESP 短信发送的响应 32
SM_GROUP_REQ 短信群发请求 33
LOGIN_REQ消息结构
字段名 数据类型 说明 取值
Password Char[16] 登陆密码
LOGIN_RESP消息结构
字段名 数据类型 说明 取值
Result Byte 登陆结果
BusinessType Byte 客户端业务类型
BalanceShort UINT 短信余额
BalanceMedia UINT 彩信余额

注1: Result 和 BusinessType 取值见常量说明。
注2: 当 BusinessType 为 0 时, 提交短信的发送类型必须为2.
注3: 当 BusinessType 为 1 时, 提交短信的发送类型为 0 或 1.
COMMON_NOTICE消息结构
字段名 数据类型 说明 取值
CommCode UINT Common消息代码
DespLen UINT 消息描述的长度
Desp Char[] 消息描述
SM_RESP消息结构
字段名 数据类型 说明 取值
Sequence UINT 消息标识

像这样的消息结构应如何使用呢?愁啊
vbman2003 2010-08-12
  • 打赏
  • 举报
回复
.net很容易,添加这个web服务,引用一下,代码:

//声明一个服务对象
SoapForSPService SoapSP = new SoapForSPService();
//请求参数对象
SendSmsMessageRequest SendSMRequest = new SendSmsMessageRequest();
//随便乱写了几个值
SendSMRequest.authenticator = "02213213d122wee";
SendSMRequest.destAddr = "13915941763";
//........
//声明应答对象
SendSmsMessageResponse SendMResponse = new SendSmsMessageResponse();
SendMResponse.authenticator = "02213213d122wee";
//发送信息
SendMResponse=SoapSP.sendSmsMessage(SendSMRequest);
//输出应答结果
Response.Write(SendMResponse.respCode);


以上代码返回400,有返回值说明调用成功的吧 ?
VB6本人没办法搞定,帮顶顶吧....
vbman2003 2010-08-12
  • 打赏
  • 举报
回复
刚才空下来看了下,SendSmsMessageRequest和SendSmsMessageResponse应该是个结构体,这样在VB6下如何传值是个问题...没研究过
用.net吧,应该容易解决点吧...
jack6688 2010-08-11
  • 打赏
  • 举报
回复
asfasfsafasfsafa
yonger22 2010-08-11
  • 打赏
  • 举报
回复
求救:
我安装了SoapToolkit20.exe,在vb中新建一个工程,然后在工程引用MSSOAP1.dll
在界面中放了一个Command1,然后在按钮中写的是

Dim test As New SoapClient
test.mssoapinit "http://218.1.74.178:8081/InterfaceForSP/services/SoapForSP?wsdl "
然后写test.后面不是应出现SoapForSP.wsdl的接口函数吗?
因为看不明白SoapForSP.wsdl这个文件,不知道电信给的id,ip,pws,port这几个参数应如何写入。
这里向大家请教了

king06 2010-08-11
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 vbman2003 的回复:]
http://blog.csdn.net/vbman2003/archive/2007/08/30/1765393.aspx
[/Quote]
up一下.
yonger22 2010-08-11
  • 打赏
  • 举报
回复
谢谢vbman2003提供的,正在看,研究一下。一会有问题再向你两位请教啊

1,502

社区成员

发帖
与我相关
我的任务
社区描述
VB 网络编程
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧