最近在項目組用Java寫了一條獲取微信小程序碼的api,根據微信的接口文檔進行一步一步的操作,可就是按照微信的接口文檔一步一步來,微信給我返回的結果一直都是47001.
{
"errcode":47001,
"errmsg":"data format error"
}
網上查閱了很多文檔,無非圈出的錯誤就是以下幾點:
- 請求參數必須是json格式
- access_token要拼接到url後面,不要放在請求參數體內
- 微信接口要求的請求參數名稱拼寫錯誤
- 沒按接口要求去傳遞請求參數
對於這些錯誤,不能叫坑,因爲接口文檔已經明確給你講解了,出這些錯誤代表你壓根就沒仔細看文檔。
我犯的錯誤也是老低級了,我在後臺將請求參數封裝成了一個javaBean:
public class QRCodeRequest {
private String scene;
private String page;
private int width;
private boolean auto_color;
private Object line_color;
private boolean is_hyaline;
}
然後用PostMan是用這樣的請求參數去call的:
{
"scene":"wqewqewq",
"line_color":{"r":"100","g":"000","b":"000"}
}
結果就是一直報47001的錯誤,我反覆看了很多次代碼,沒有找到問題。結果,就是代碼問題。
雖然前臺只傳遞了兩個參數進來,但是後臺用javaBean接收時,將所有屬性全部作爲請求參數了,前臺沒傳的參數後臺全部取默認值了。我不知道爲什麼微信的後臺沒有去處理這些無用參數,因爲某些值它都是有默認值的:
所以 就是:要什麼參數就提供什麼參數,(scene參數必須傳),或者後臺做個判斷!
就這麼問題,浪費了半天的感情,唉!
越努力,越幸運