報錯信息:
{"code":500,"data":null,"requestId":"OSYEAKVH","resultMsg":"系統未知錯誤","errorStackTrace":"JSON parse error: Unrecognized token 'robotCallJobId': was expecting ('true', 'false' or 'null'); nested exception is com.fasterxml.jackson.core.JsonParseException: Unrecognized token 'robotCallJobId': was expecting ('true', 'false' or 'null')\n at [Source: (PushbackInputStream); line: 1, column: 16]"}
問題描述:
對一個接口發送post請求測試,由於該接口入參比較多,必填項又比較少,所以想當然的選擇了使用Parameters形式傳入了必填項對應的鍵值對(key-value),當發送請求后,返回response報JSON解析解析錯誤,本質上就是找不到參數: 'robotCallJobId' 。
后來切換傳參形式,使用Body Data傳入JSON串,接口正常響應,沒有再報JSON解析錯誤
思考:
1.解析的是入參,報錯JSON解析錯誤,當時傳入的是value-key,應該立馬思考是不是傳參形式錯誤了。
2.接口有特定的傳參形式,應該給予尊重,犯錯本質上是對接口傳參形式拎不清。到底是用鍵值對,還是用json串傳值,請尊重接口本身。
3.發送請求的時候,關注request headers 的content-type, content-type決定輸入參數格式