调用接口head的一些问题

阅读次数 183

image.png md5 body中数据的md5值十六进制表达方式,这个body中有很多数据是整体的数据吗?还是某一个? APP_KEY是什么?
image.png
这个是header.
image.png
调用报403
用get,可以调通接口,但是用post总是403,应该是body的问题,但是我body跟你们示例是一样的写法.不知道是什么问题,能帮忙看一下吗

4 Answers

您好,签名算法中的 app_id 是贵司在开放平台申请到的应用的 ID,形如 AK2023xxxapp_key 就是这个 id 对应的密钥,如果您是管理员,可以登录开放平台的控制台查看;如果不是,可以请贵司的管理员帮忙查看。

您可以将请求返回的 body 打印出来,通常我们会在 body 中以 json 格式返回请求失败原因。比如 md5 不匹配等。这里 有签名算法的完整说明。您可以先看看。

{"code":30003,"message":"InvalidSignature","hint":"md5 not match. expect: f492157a87c758e56ef8f29d1221781d953ef6dd, actual: 6d2f56374ee71d0a571086bccbb267e2fb3c6e19","extra":""} 这是返回的body. {"url":"https://jjjt.oss-cn-shanghai.aliyuncs.com/Office/contract/1688025673.docx","filename":"7640555216417449485.docx"}
这个是我用来进行MD5加密转16进制的字符串.是格式的问题吗?

{"code":30003,"message":"InvalidSignature","hint":"md5 not match. expect: f492157a87c758e56ef8f29d1221781d953ef6dd, actual: 6d2f56374ee71d0a571086bccbb267e2fb3c6e19","extra":""} 这是返回的body. {"url":"https://jjjt.oss-cn-shanghai.aliyuncs.com/Office/contract/1688025673.docx","filename":"7640555216417449485.docx"}
这个是我用来进行MD5加密转16进制的字符串.是格式的问题吗?

您好,跟格式没有关系。由于是 POST,我们会将您请求的 body 中的数据都读出来,然后交给 md5 去计算摘要,然后再跟您请求中的 content-md5 头去做比较。您可以现在您本地做验证,例如:echo -n '{"url":"https://jjjt.oss-cn-shanghai.aliyuncs.com/Office/contract/1688025673.docx", "filename":"7640555216417449485.docx"}' | md5sum 要注意的是这里的内容,必须跟你后续请求中的 body 一摸一样。

不好意思,没太明白怎么验证...是说我md5加密错误了吗导致你们加密的MD5和我加密的MD5后的字符串不匹配导致鉴权失败?

昂,还是不行呢,你们返回的body中的expect是你们那我传过去的body加密得出来的嘛?

文档中的所有例子的md5给的都是d41d8cd98f00b204e9800998ecf8427e,不管请求体是什么。怀疑有问题。

这边请求的时候和文档一样的例子 {"url":"https://xxx.com/xxx","filename":"文字文稿.docx"} md5计算结果在多方验证都是be4f1474545ec70ea24549cac83c76f2,但是文档写的是d41d8cd98f00b204e9800998ecf8427e。
而且一定无法验证通过,md5确保是正确的,sha1算法也是正确的{"code":30003,"message":"InvalidSignature","hint":"md5 not match. expect: 2fa04073faa85349ae163c86fb6f181efdfca583, actual: 282742cb3bb3e24029cf88fb3bd63ce4196132ab","extra":""}

不但如此,每次请求使用相同的md5退市的expect和actual都会变。我理解至少actual不应该变

是的,我也发现了,我今天过来想说的...我在MD5加密之后,不传我加密后的字符串,随便传个字符串,他们返回的预期值跟我加密后的字符串是一样的,但是我传了我加密的字符串,他们的预期值就跟我加密的不一样了...不知道为啥会这样..

感觉有点抽象 你如果输入MD5 他的expect输出的是预期签名加你实际计算出的签名 但是当你乱输入 他的expect输出的是预期签名加你随便的输入

image.png这个是我传我加密后的MD5值,他们的返回预期跟实际都跟我的不一样, image.png这个是我随便传的字符串,他们的返回预期值就跟我加密后的一样了,实际值也是我传的实际值. 我不知道这个他们是有什么特殊的算法吗.总感觉追不上的感觉...

嗯 我想描述的也是这个情况 感觉是不是他们官方那边有问题 emm

你解决了没...

没 技术支持不用上班的吗(