GET是HTTP協(xié)議中的一種請求方式,GET請求方式可以把參數(shù)放在Url中進(jìn)行傳遞。那么,get方式能否傳JSON數(shù)據(jù)呢?這個問題需要我們深入理解GET和JSON。
GET /api/user?id=1 HTTP/1.1 Host: www.example.com Accept: application/json
上面的請求可以獲取id為1的用戶信息。這里的參數(shù)是放在Url中的,而且請求頭中也指明了需要返回json格式的數(shù)據(jù)。那么問題來了,既然可以在請求頭中指定需要返回json格式的數(shù)據(jù),那么是否可以在請求體中傳遞JSON數(shù)據(jù)呢?
答案是:不可以!
GET請求方式不支持在請求體中傳遞數(shù)據(jù),只能通過Url的方式來傳遞參數(shù)。如果需要傳遞JSON數(shù)據(jù),應(yīng)該使用POST請求方式,將參數(shù)放在請求體中。
POST /api/user HTTP/1.1 Host: www.example.com Content-Type: application/json { "id": 1, "name": "John" }
上面的請求就是使用POST方式傳遞JSON數(shù)據(jù)的示例。請求頭中指定了請求體的格式為JSON,而請求體中就是JSON數(shù)據(jù)。
總結(jié):GET方式不支持在請求體中傳遞數(shù)據(jù),因此不能傳遞JSON數(shù)據(jù)。如果需要傳遞JSON數(shù)據(jù),應(yīng)該使用POST請求方式。