注册 登录
编程论坛 VFP论坛

关于vfp能否使用WEB接口的问题

fanjinyu9108 发布于 2022-01-26 20:18, 2951 次点击
    提问之前,先感谢论坛的老师对我的帮助,祝各位虎年快乐。我的问题是这样的:第一步 在SQL数据库里面有一个表INFO,这个表有一个字段,我取名字TEXT,当需要传送信息的时候,我把需要传送的短信放在这个字段里。第二步 我在网上联系了一个可以群发短信的公司,他们给了我一个接口文件,要我把SQL字段里面的内容通过接口发送到他们的服务器里面,然后通过他们的平台再发送到用户手机里面。我看了下文件,是WEB接口,我不会用,请教一下,能帮我解决吗,如何把WEB接口程序镶嵌在我的软件里面?接口软件已经上传。
只有本站会员才能查看附件,请 登录

   
20 回复
#2
吹水佬2022-01-26 21:32
测试不了,随便抄个示例
程序代码:
cUrl = "http://address:port/sms/api/sendMessage"
TEXT TO cData TEXTMERGE NOSHOW PRETEXT 7
{
"userName": "test",
"content": "【签名】您的验证码是 123456",
"phoneList": ["13500000001", "13500000002", "13500000003"],
"timestamp": 1596254400000,
"sign": "43fcac8cf3079f86f2f8409158c51ff6"
}
ENDTEXT
? SendData(cUrl, cData)
RETURN

FUNCTION SendData(cUrl, cData)
    LOCAL wh
    wh = CREATEOBJECT("WinHttp.WinHttpRequest")
    wh.Open("POST", cUrl, 0)
    wh.SetRequestHeader("Accept", "application/json")
    wh.SetRequestHeader("Content-Type", "application/json;charset=utf-8")
    wh.Send(cData)
    RETURN wh.ResponseText
ENDFUNC
#3
fanjinyu91082022-01-27 08:45
吹水佬版主,您好
只有本站会员才能查看附件,请 登录
运行到下面语句的时候出错:wh = CREATEOBJECT("WinHttp.WinHttpRequest") 出错如图
#4
吹水佬2022-01-27 09:53
以下是引用fanjinyu9108在2022-1-27 08:45:26的发言:

吹水佬版主,您好 运行到下面语句的时候出错:wh = CREATEOBJECT("WinHttp.WinHttpRequest") 出错如图

改为:wh = CREATEOBJECT("WinHttp.WinHttpRequest.5.1")
#5
吹水佬2022-01-27 09:56
请使用接口网关地址替换文档中的服务器地址:http://address:port/sms
#6
fanjinyu91082022-01-27 11:48
还是没有过,吹水佬版主,您给的程序我是这样用的,第一步,增加一个程序,命名senddata, 然后粘贴您的代码如下:
    PARAMETERS cUrl, cData  &&这是我加的内容,因为不加就会出错。
    LOCAL wh
    wh = CREATEOBJECT("WinHttp.WinHttpRequest.5.1")
    wh.Open("POST", cUrl, 0)
    wh.SetRequestHeader("Accept", "application/json")
    wh.SetRequestHeader("Content-Type", "application/json;charset=utf-8")
    wh.Send(cData)
    RETURN wh.ResponseText
第二步,又增加一个程序,命名“mycon”,粘贴代码如下:
  
程序代码:
SET PATH TO F:\CESHI

cUrl ="http://address:port/sms"
TEXT TO cData TEXTMERGE NOSHOW PRETEXT 7
{
"userName": "test",
"content": "【签名】您的验证码是 123456",
"phoneList": ["17307215711", "13500000002", "13500000003"],
"timestamp": 1596254400000,
"sign": "43fcac8cf3079f86f2f8409158c51ff6"
}
ENDTEXT
*? SendData(cUrl, cData)
SendData()
RETURN

接着,运行程序mycon,出现如下结果:
只有本站会员才能查看附件,请 登录
#7
吹水佬2022-01-27 12:44
回复 6楼 fanjinyu9108
示例不能照抄,见5楼,合法用户可以咨询服务商。
还有发送的数据也是,有些可能与用户信息相关。
#8
foxfans2022-01-27 12:51
cUrl ="http://address:port/sms" 乱写,必须是数值端口,或默认不写..... 你这用语句不错才怪,域名,或IP地址及对应的端口地址都没写,抄代码也要看懂一下。

[此贴子已经被作者于2022-1-27 13:38编辑过]

#9
laowan0012022-01-27 13:22
cUrl ="http://address:port/sms"
这其中的address:port应该是你的供应商提供给你
#10
fanjinyu91082022-01-27 16:52
老师们不要见笑啊,WEB确实一窍不通啊,整了一个下午,有响应了,现将代码粘贴如下:
程序代码:
SET PATH TO F:\CESHI
cUrl ="http://smsapi.8001/sms"
TEXT TO cData TEXTMERGE NOSHOW PRETEXT 7
{
"userName": "枝江油库",
"content": "【签名】您的验证码是 123456",
"phoneList": ["17307215800", "13500000002", "13500000003"],
"timestamp": 1596254400000,
"sign": "43fcac8cf3079f86f2f8409158c51ff6"
}
ENDTEXT
? SendData(cUrl, cData)
RETURN

回应的内容是:“本地址是接口网关地址,仅限接口对接请求。如需账号登陆......”
我问了客服,客服说地址后面要带方法
只有本站会员才能查看附件,请 登录

这是我的用户名和密码  用户名:枝江油库  密码:6552907   sendmessageone方法实在不会,恳请老师们指导下

[此贴子已经被作者于2022-1-27 16:55编辑过]

#11
吹水佬2022-01-27 18:03
试过按lennon说的去做了吗
cUrl = "http://smsapi.
#12
fanjinyu91082022-01-27 19:10
吹水佬版主,终于成功了,非常感谢,但是又遇到一个问题,就是我的文本内容,就是content不是固定的啊,能用变量代替吗?我试了一下,好像不行啊
程序代码:
mytext="【签名】您的验证码是 123456"
cUrl ="http://smsapi.
TEXT TO cData TEXTMERGE NOSHOW PRETEXT 7
{
"userName": "枝江油库",
"password": "6552907",
"content": mytext,
"phoneList": ["17307215713", "13500000002", "13500000003"],
"timestamp": 1596254400000,
"sign": "43fcac8cf3079f86f2f8409158c51ff6"
}
ENDTEXT
? SendData(cUrl, cData)
RETURN
#13
fanjinyu91082022-01-27 19:10
吹水佬版主,终于成功了,非常感谢,但是又遇到一个问题,就是我的文本内容,就是content不是固定的啊,能用变量代替吗?我试了一下,好像不行啊
程序代码:
mytext="【签名】您的验证码是 123456"
cUrl ="http://smsapi.8001/sms/api/sendMessage"
TEXT TO cData TEXTMERGE NOSHOW PRETEXT 7
{
"userName": "枝江油库",
"password": "6552907",
"content": mytext,
"phoneList": ["17307215720", "13500000002", "13500000003"],
"timestamp": 1596254400000,
"sign": "43fcac8cf3079f86f2f8409158c51ff6"
}
ENDTEXT
? SendData(cUrl, cData)
RETURN


[此贴子已经被作者于2022-1-27 19:11编辑过]

#14
foxfans2022-01-27 19:15
回复 13楼 fanjinyu9108
"<<m.mytext>>"

[此贴子已经被作者于2022-1-27 19:21编辑过]

#15
吹水佬2022-01-27 19:56
回复 12楼 fanjinyu9108
这样看看:
mytext="【签名】您的验证码是 123456"
TEXT TO cData TEXTMERGE NOSHOW PRETEXT 7
{
"content": "<<mytext>>",
}
ENDTEXT
? cData
#16
fanjinyu91082022-01-27 20:22
非常感谢,问题已经圆满解决!
#17
schtg2022-01-28 07:51
学习啦,谢谢!
#18
a575985872022-01-28 20:05
回复 17楼 schtg
请问 字符串的 MD5  是怎么计算的? 用 vfp 可以计算么? 还是有专门的计算工具: 谢谢
#19
schtg2022-01-28 20:38
回复 18楼 a57598587
可以的,百度一下应该能找得到的哈
#20
sam_jiang2022-01-28 22:26
哪家公司,怎么收费的?
#21
laowan0012022-01-29 07:50
以下是引用a57598587在2022-1-28 20:05:40的发言:

请问 字符串的 MD5  是怎么计算的? 用 vfp 可以计算么? 还是有专门的计算工具: 谢谢

用木瓜大师的myfll.fll,里面有MD5函数
1