今天在看看node request API 时,发现requset在上传表单时可以通过下面两种方式:这两个方法有什么区别与联系,在实际开发中,应该如何选择? 1. POST data to a JSON REST API
var options = { method: ‘POST’, uri: ‘http://api.posttestserver.com/post’, body: { some: ‘payload’ }, json: true // Automatically stringifies the body to JSON };
2. POST like HTML forms do
var options = { method: ‘POST’, uri: ‘http://posttestserver.com/post.php’, formData: { // Like <input type=“text” name=“name”> name: ‘test.jpg’, // Like <input type=“file” name=“file”> file: { value: fs.createReadStream(‘test/test.jpg’), options: { filename: ‘test.jpg’, contentType: ‘image/jpg’ } } }, headers: { /* ‘content-type’: ‘application/x-www-form-urlencoded’ */ // Is set automatically } };
参数、传递的数据量比较少时用GET 参数、传递的数据量相对多用POST 需要上传文件就使用form提交
看服务端啦… 首选 application/json, 但 urlencoded 兼容性好 application/json 到服务端 decode 出来可以表达 Number / int / float / double / bool 等等数据类型, urlencoded 只有 String
当然 node 这边的 qs parser 可以解析 querystring 表达数组 / object 嵌套, 但是这个没有规范, 建议不要使用