在Web開發中,GET請求常被用來向服務器請求數據。GET請求將參數通過URL傳送,以?key1=value1&key2=value2的形式附加到URL中。當參數過多或者參數過長時,這樣的傳輸方式就會使用繁瑣和不太安全。因此,使用參數為JSON格式的GET請求將會變得更加便捷。
GET /api/user?param={"key1":"value1","key2":"value2"} HTTP/1.1 Host: example.com Accept: application/json
在這樣的傳輸方式中,參數被以JSON格式的字符串形式附加到URL后面,傳輸時需要將JSON字符串進行URL編碼。服務器端則需要對參數進行解碼,以獲取其中的鍵值對。
const qs = require('querystring') const http = require('http') const options = { hostname: 'example.com', port: 80, path: '/api/user?param='+encodeURI('{"key1":"value1","key2":"value2"}'), method: 'GET', headers: { 'Accept': 'application/json' } } const req = http.request(options, (res) =>{ console.log(`狀態碼:${res.statusCode}`) res.on('data', (data) =>{ console.log(JSON.parse(data)) }) }) req.on('error', (error) =>{ console.error(error) }) req.end()
以上是使用Node.js進行GET請求時的一個例子,其中使用了querystring模塊對JSON字符串進行URL編碼,將編碼后的字符串作為參數附加到URL后面。
參數為JSON格式的GET請求將會使代碼更加簡潔,同時也方便了參數的組合和解析。然而,由于GET請求的限制,接受的JSON參數大小和數量仍需要進行一定的限制。