在HTTP請求中,GET和POST是最常見的方法之一,GET方法用于從服務器檢索數據。那么問題來了,get能發送json嗎?
GET /user HTTP/1.1 Host: example.com HTTP/1.1 200 OK Content-Type: application/json { "name": "John", "age": 30, "city": "New York" }
根據HTTP規范,GET方法是不應該具有請求主體的。所以在理論上,GET方法無法直接發送JSON對象。
使用GET方法,在URL中傳遞參數是最常見的方式。例如:
https://api.example.com/user?name=John&age=30&city=New%20York
這里的參數是以鍵值對的形式出現,而且每一個參數之間都用&符號分隔。
雖然GET方法不應直接發送JSON數據,但可以使用URL編碼方式將JSON對象的字符串形式作為參數傳遞。如下所示:
https://api.example.com/user?data=%7B%22name%22%3A%22John%22%2C%22age%22%3A30%2C%22city%22%3A%22New%20York%22%7D
這里的data參數的值是將JSON對象的字符串形式進行URL編碼后的結果。
總結一下,盡管HTTP規范不支持在GET請求中發送JSON對象,但是我們可以使用URL編碼的方式傳遞JSON對象參數。