微信公众号获取管理素材列表的大坑-{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.weixin.qq.com/cgi-bin/material/batchget_material?access_token=" + wxBase.getAccessToken().getData(), map);文檔中說到的,需要用 https 的協議,然后需要用到 ACCESS_TOKEN 的字段(關于 access_token 的獲取我前面已經有一篇關于公眾號開發的博文有說明了,此處不再贅述,而且要確保獲取 access_token 的機器訪問 ip 在你之前配置的 IP 白名單中)。
好了,看著像沒啥問題了,我按照官方的說明,用 post 的方式將封裝了所需具備的幾個參數的 map 去做列表請求,但是調試的結果是:
跟我標題中提到的那樣,無論換什么 type 都會提示這個錯誤。
解決方案
沒辦法了,思考了一下,http 的參數有鍵值對和 json 的方式來傳遞,在前面做微信開發的時候,它們有用到了 xml 以及 json , 那我用 json 試一下?
HttpResult httpResult = HttpUtil.ofPost("https://api.weixin.qq.com/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 核心知識解析,職業生涯,面試總結等文章會不定期堅持推送輸出,歡迎大家關注~~~
近期會通過面試問答的形式為大家推送面試相關的知識,如果有什么建議可以在公眾號留言~
總結
以上是生活随笔為你收集整理的微信公众号获取管理素材列表的大坑-{errcode:40004,errmsg:invalid media type hint:}的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: windows 11激活Office提示
- 下一篇: ojdbc连接oracle报错:IO 错