python發送post請求(帶json參數)時報錯:exception:"com.alibaba.fastjson.JSONException","message":syntax error解決方法
使用python的requests庫,使用以下方法發送帶json參數的post請求,會出現報錯信息:
post請求的關鍵代碼:
req_body = {'apiSign':'1','appKey':'11','timestamp':1591862521} ##請求參數
response = requests.post(url=host+path,headers=HEADERS, data=req_body) ##發送post請求
print(response.text) ##將服務器返回的結果打印出來
發送post時,控制檯出現報錯信息:
exception:"com.alibaba.fastjson.JSONException","message":syntax error
出現這種問題的原因是,發送post請求時,request將參數的形式組裝成下面的方式:
"apiSign=1&appKey=11×tamp=1591862521"
而這種參數,並不能被服務器端的fastjson識別並轉換成json格式。
要解決這個問題,需要對請求參數轉化成json格式,再發送請求。
req_body = json.dumps(req_body)
打印轉化後的請求參數,結果爲:
req_body:{"apiSign": "1", "appKey": "11", "timestamp": 1591862521}
將轉化成json格式的參數,發送請求,不再報錯
問題解決!!