100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > 微信公众号获取管理素材列表的大坑-{errcode:40004 errmsg:invalid media type hint:}

微信公众号获取管理素材列表的大坑-{errcode:40004 errmsg:invalid media type hint:}

时间:2019-06-27 20:28:56

相关推荐

微信公众号获取管理素材列表的大坑-{errcode:40004 errmsg:invalid media type hint:}

问题

最近在做微信公众号的开发(前端后台都有),所以更新系列博文就得推迟了,不过遇到的一些问题还是可以跟大家分享一下,以免大家以后需要用到的时候跟我一样踩坑。

像今天,我在微信公众号的后台-接口权限中看我的权限(个人号),看到个人号有个永久素材管理接口的权限,就想着拿这个接口来做点什么。

那我拿到这个接口的第一件事,我肯定是先尝试获取素材列表啦~微信开放文档的使用说明如下:

于是我马上上手调试:

HashMap<String, String> map = new HashMap<>();map.put("type", ”news“);map.put("offset", "0");map.put("count", "20");HttpResult httpResult = HttpUtil.ofPost("https://api./cgi-bin/material/batchget_material?access_token=" + wxBase.getAccessToken().getData(), map);

文档中说到的,需要用 https 的协议,然后需要用到 ACCESS_TOKEN 的字段(关于 access_token 的获取我前面已经有一篇关于公众号开发的博文有说明了,此处不再赘述,而且要确保获取 access_token 的机器访问 ip 在你之前配置的 IP 白名单中)。

好了,看着像没啥问题了,我按照官方的说明,用 post 的方式将封装了所需具备的几个参数的 map 去做列表请求,但是调试的结果是:

{errcode":40004,"errmsg":"invalid media type hint:"}

跟我标题中提到的那样,无论换什么 type 都会提示这个错误。

解决方案

没办法了,思考了一下,http 的参数有键值对和 json 的方式来传递,在前面做微信开发的时候,它们有用到了 xml 以及 json , 那我用 json 试一下?

HttpResult httpResult = HttpUtil.ofPost("https://api./cgi-bin/material/batchget_material?access_token=" + wxBase.getAccessToken().getData(), JSON.toJSONString(map));

项目中有用到了 fastjson,我用 fastjson 把原本的 map 对象转成 json 字符串试一下,果然功夫不负有心人啊~

问题解决,访问的图片此处就不贴出来了,大家如果遇到的话可以尝试一下~

By the way

有问题?可以给我留言或私聊

有收获?那就顺手点个赞呗~

当然,也可以到我的公众号下「6曦轩」,

回复“学习”,即可领取一份

【Java工程师进阶架构师的视频教程】~

回复“面试”,可以获得:

【本人呕心沥血整理的 Java 面试题】

回复“MySQL脑图”,可以获得

【MySQL 知识点梳理高清脑图】

曦轩我是科班出身的程序员,php,Android以及硬件方面都做过,不过最后还是选择专注于做 Java,所以有啥问题可以到公众号提问讨论(技术情感倾诉都可以哈哈哈),看到的话会尽快回复,希望可以跟大家共同学习进步,关于服务端架构,Java 核心知识解析,职业生涯,面试总结等文章会不定期坚持推送输出,欢迎大家关注~~~

近期会通过面试问答的形式为大家推送面试相关的知识,如果有什么建议可以在公众号留言~

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。