开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 850|回复: 16
收起左侧

[已解决] 一个POST发送json数据的问题

 关闭 [复制链接]
结帖率:93% (13/14)
发表于 2023-9-26 14:22:12 | 显示全部楼层 |阅读模式   陕西省商洛市
100精币
在写一个钉钉机qi人发送文件的功能最后一个地方过去不去了...
官方文档地址:机qi人发送群聊消息 - 钉钉开放平台 (dingtalk.com)
也就是往https://api.dingtalk.com/v1.0/robot/groupMessages/send这个网址发送一个json格式的post包

我在阿里的在线调试平台可以成功,切换到发包工具和易语言就失败,如图所示

在线调试-成功

在线调试-成功

发包工具里面一直提示失败,如下图

发包工具失败2

发包工具失败2


易语言里面用 类_pos数据,设置数据提交以后也是不成功
  
postData.添加 (“msgParam”, “sampleText”, )
postData.添加 (“msgKey”, #msgParamQun, )
reBins = 网页_访问_对象 (url, 1, postData.获取JSON文本 (), , , headers, , , 真, , , , , , , , , , )

错误提示:
{"code":"Missingbody","requestid":"D635D8ED-A260-7A4E-84D5-F73A4BFD89D9","message":"body is mandatory for this action."}


由此产生了2个问题
1.在线调试的时候,msgParam我填的是
  
{“content”:“hahaha哈哈哈哈”}

发出去的包变了,给我加了\
2.发包错误提示为什么是必须要body,我提交了body的啊





补充内容 (2023-9-26 17:32):
补充一下
1.请求头哪里,我加是上json的,发帖的时候这句给漏了
2.在线调试的截图里,填的参数跟最终发出去的有一点不一致(加了\),这里不太懂

补充内容 (2023-9-26 17:35):
还有一个情况,这一步发包只能用精易模块的“网页访问对象”
用鱼刺的winhttpw和E2EE直接发包失败,返回值都没有…,不知道为啥

补充内容 (2023-9-27 07:06):
文档地址:https://open.dingtalk.com/document/isvapp/bots-send-group-chat-messages
一直以为已经发了文档地址,仔细看才发现是接口地址,抱歉抱歉

发包工具失败1

发包工具失败1

最佳答案

查看完整内容

看地址 你这个是 发群聊消息 那应该是这样 [mw_shl_code=javascript,true]{ "msgParam" : "{\"text\": \"来了老弟\",\"title\" ...

回答提醒:如果本帖被关闭无法回复,您有更好的答案帮助楼主解决,请发表至 源码区 可获得加分喔。
友情提醒:本版被采纳的主题可在 申请荣誉值 页面申请荣誉值,获得 1点 荣誉值,荣誉值可兑换荣誉会员、终身vip用户组。
快捷通道:申请荣誉值无答案申请取消悬赏投诉有答案未采纳为最佳

结帖率:100% (1/1)

签到天数: 21 天

发表于 2023-9-26 14:22:13 | 显示全部楼层   河南省郑州市
看地址 你这个是 发群聊消息
那应该是这样

[JavaScript] 纯文本查看 复制代码
{
  "msgParam" : "{\"content\":\"来了老弟\"}",
  "msgKey" : "sampleText",
  "openConversationId" : "cid6KeBBLoveMJOGXoYKF5x7EeiodoA==",
  "robotCode" : "dingue4kfzdxbynxxxxxx",
  "coolAppCode" : "COOLAPP-1-10182EEDD1AC0BA600D9000J"
}



[JavaScript] 纯文本查看 复制代码
{
  "msgParam" : "{\"text\": \"来了老弟\",\"title\": \"hello title\"}",
  "msgKey" : "sampleMarkdown",
  "openConversationId" : "cid6KeBBLoveMJOGXoYKF5x7EeiodoA==",
  "robotCode" : "dingue4kfzdxbynxxxxxx",
  "coolAppCode" : "COOLAPP-1-10182EEDD1AC0BA600D9000J"
}

评分

参与人数 1荣誉 +1 收起 理由
项目部004 + 1 热心帮助他人,荣誉+1,希望继续努力(*^__^*) 嘻嘻!

查看全部评分

回复

使用道具 举报

结帖率:80% (16/20)
发表于 2023-9-26 14:26:07 | 显示全部楼层   上海市上海市
你易语言是不是少了个这个:Content-Type: application/json
PostMan的Header里是不是也少了 Content-Type: application/json????


补充内容 (2023-9-26 14:49):
这是请求头、协议头...

点评

协议头没少,我贴上来的代码少复制了,另外我在2个发包工具里面都测试了,测试的时候也加上了协议头   陕西省商洛市  发表于 2023-9-26 16:29
回复

使用道具 举报

结帖率:80% (16/20)
发表于 2023-9-26 14:33:59 | 显示全部楼层   上海市上海市
你指定是协议头分析错了,你试试我的
  
子程序名返回值类型公开备 注
功能_网页访问文本型 本命令由【精易网页调试助手】生成,请配合精易模块使用。
变量名类 型静态数组备 注
局_网址文本型 
局_方式整数型 
局_提交数据文本型 
ADD_协议头类_POST数据类 
局_提交协议头文本型 
局_结果字节集 
局_返回文本型 
' https://api.dingtalk.com/v1.0/robot/groupMessages/send
局_网址 = "https://api.dingtalk.com/v1.0/robot/groupMessages/send"
局_方式 = 1
' {
"msgParam":"{\"content\":\"hhhhhhhhhhhhh\"}",
"msgKey":"sampleText"
}
局_提交数据 = "{” + #换行符 + “    ”+#引号+“msgParam”+#引号+“:”+#引号+{\”+#引号+“content\”+#引号+“:\”+#引号+“hhhhhhhhhhhhh\”+#引号+}+#引号+“,” + #换行符 + “    ”+#引号+“msgKey”+#引号+“:”+#引号+“sampleText”+#引号+“” + #换行符 + }"
ADD_协议头.添加 ("Content-Type","application/json")
ADD_协议头.添加 ("x-acs-dingtalk-access-token","c77f1a817c933298976917fba90cfa21")
ADD_协议头.添加 ("User-Agent","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.106 BIDUBrowser/8.3 Safari/537.36")
局_提交协议头 = ADD_协议头.获取协议头数据 ()
网页_访问S (局_网址, 局_方式, 局_提交数据, , , 局_提交协议头, , , , , , , , , , , 局_结果, , , , )
局_返回 = 到文本 (局_结果)
返回 (局_返回)



补充内容 (2023-9-26 15:00):
发包工具 你看你 body那里,你应该勾选 raw  然后 有个下拉选择 JSON,然后发包

补充内容 (2023-9-26 15:01):
你勾的事 urlencode 所以尽管 你自己在header上加了 content-type 也还是不行 因为发包工具会根据 你勾选的 重定义 content-type
回复

使用道具 举报

结帖率:100% (29/29)

签到天数: 16 天

发表于 2023-9-26 14:38:37 | 显示全部楼层   江苏省苏州市
请求头少了    Content-Type: application/json
回复

使用道具 举报

签到天数: 24 天

发表于 2023-9-26 14:51:51 | 显示全部楼层   广东省广州市
1695711094108.png

点评

您这个也是参数不合法,我调整了很多次,有时候也是这个错误   陕西省商洛市  发表于 2023-9-26 16:31
回复

使用道具 举报

结帖率:100% (1/1)

签到天数: 21 天

发表于 2023-9-26 16:35:38 | 显示全部楼层   河南省郑州市
人家要求的发包内容是一个json
格式要按照第一张图的body那样
加\的意思是  msgParam是一个字符串,而不是一个子json对象

第2张图里面应该选择 raw  然后把整个json粘贴进去 试试
回复

使用道具 举报

结帖率:80% (16/20)
发表于 2023-9-26 17:10:27 | 显示全部楼层   上海市上海市
如果你现在的异常不再是body is mandatory for this action 而是一个参数异常的错误,那么你应该阅读阿里云Api文档然后检查你的参数是否正确
回复

使用道具 举报

结帖率:93% (13/14)

签到天数: 6 天

 楼主| 发表于 2023-9-26 17:28:23 | 显示全部楼层   陕西省商洛市
黑骑士ol 发表于 2023-9-26 17:10
如果你现在的异常不再是body is mandatory for this action 而是一个参数异常的错误,那么你应该阅读阿里云 ...

参数的数量和位置这些应该是没问题的,我都是从开发文档里面复制的例子…
不知道到易里面为啥不行
回复

使用道具 举报

结帖率:80% (16/20)
发表于 2023-9-26 17:34:07 | 显示全部楼层   上海市上海市
badlwolf 发表于 2023-9-26 17:28
参数的数量和位置这些应该是没问题的,我都是从开发文档里面复制的例子…
不知道到易里面为啥不行 ...

发你的源码函数出来和官方Api地址出来
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 诚聘英才| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 800073686,邮箱:800073686@b.qq.com
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表