在使用curl請(qǐng)求時(shí),如果返回的json過長,有時(shí)候會(huì)出現(xiàn)返回值被截?cái)嗟那闆r。這種情況在輸出結(jié)果時(shí)往往會(huì)導(dǎo)致一部分信息無法正常顯示。例如:
{ "code":200, "data":{ "id":"123456", "name":"這里是一個(gè)非常長的名字", "description":"這里是一個(gè)很長的描述", "content": "這里是一個(gè)超級(jí)長的內(nèi)容。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。" } }
假如在使用curl進(jìn)行請(qǐng)求時(shí)返回的json數(shù)據(jù)過大,那么很有可能就只會(huì)輸出以下內(nèi)容:
{ "code":200, "data":{ "id":"123456", "name":"這里是一個(gè)非常長的名字", "description":"這里是一個(gè)很長的描述", "conten }
此時(shí)很容易將輸出的json數(shù)據(jù)誤認(rèn)為是不完整的,而實(shí)際上,curl返回的數(shù)據(jù)已經(jīng)完整。所以,我們需要采取一些措施來解決這個(gè)問題。
一般來說,curl在調(diào)用API時(shí),會(huì)使用默認(rèn)的輸出長度設(shè)置,所以可以嘗試通過設(shè)置max-redirs來限制重定向次數(shù),進(jìn)而避免出現(xiàn)截?cái)嗟那闆r。例如:
curl -sS -L -X GET 'https://www.xx.com/api' --max-redirs 10
如果你還是覺得輸出的json數(shù)據(jù)有點(diǎn)長,可以考慮通過美化輸出的方式使得代碼更加美觀易讀。這里推薦使用Python中的json模塊,具體的代碼實(shí)現(xiàn)如下:
import json text = '{"age":24,"city":"Beijing","name":"李明","sex":"男"}' json_text = json.loads(text) print(json.dumps(json_text, indent=4, sort_keys=True, ensure_ascii=False))
上述代碼會(huì)將一個(gè)字符串轉(zhuǎn)化成json格式,然后對(duì)其進(jìn)行縮進(jìn)、排序和Unicode處理。這樣就能夠更加方便地查看輸出的json數(shù)據(jù)了。