記錄一次不在意的錯(cuò)誤行為分析撤防,場(chǎng)景在構(gòu)造數(shù)據(jù)過(guò)程中調(diào)試一個(gè)接口虽风,使用postman 提交表單數(shù)據(jù)時(shí),能正確返回200寄月,但是通過(guò)requests調(diào)用時(shí)報(bào)400
分析步驟:
1.debug調(diào)試時(shí)辜膝,執(zhí)行requests請(qǐng)求方法這一行報(bào)錯(cuò),錯(cuò)誤碼為400漾肮,初步懷疑參數(shù)傳入有問(wèn)題厂抖,然后把傳參數(shù)據(jù)格式及類型打印出來(lái)是str
2.通過(guò)Charles本地抓包,證實(shí)確實(shí)是參數(shù)類型傳入錯(cuò)誤導(dǎo)致
正確的表單格式數(shù)據(jù)
3.然后修改傳入的數(shù)據(jù)類型克懊,調(diào)試后執(zhí)行通過(guò)忱辅。
excel中數(shù)據(jù)正確寫法改成:{"marketId": "A1060922", "shopIds": "A1058439,A1057079"}
代碼轉(zhuǎn)換一下參數(shù)格式:newData = json.loads(data)
總結(jié):
1.問(wèn)題根本原因是自己粗心大意,當(dāng)傳參類型要求為表單時(shí)谭溉,且接口不支持直接傳json對(duì)象墙懂,那么傳參的類型必須是dic如果是str必然就報(bào)錯(cuò)了
2.讀取的參數(shù)是從excel中讀取的,當(dāng)時(shí)寫入excel的數(shù)據(jù)扮念,是dic形式的str,用了單引號(hào)损搬;導(dǎo)致使用json.load方法不生效