(axios content-type) axios请求头设置常见Content-Type和对应参数的处理方式
在Web开发过程中,我们常常要使用HTTP库发送请求,并且需要设定请求头(Request Header)。其中,Content-Type
字段是非常常见的一个。它决定了我们发送的请求体是以何种方式进行编码,常见的值有三种:application/json
,application/x-www-form-urlencoded
和 multipart/form-data
。
那么我们该如何在 axios 中设定请求头的Content-Type
并发送请求呢?下面是三种场景的具体使用方式:
- 当
Content-Type
为application/json
时,我们直接发送JSON格式的请求体。这在发送较为复杂的结构,比如嵌套的JSON或数组时非常有用。
const axios = require('axios');
axios.post('http://httpbin.org/post', {
foo: 'bar',
nested: {a: 'b'},
array: ['c', 'd']
}, {headers: {'Content-Type': 'application/json'}})
.then(response => console.log(response.data))
.catch(error => console.error(error));
- 当
Content-Type
为application/x-www-form-urlencoded
时,我们需要转换我们的请求体为URL编码的格式。这种情况在POST普通的键值对时常出现。
const axios = require('axios');
const qs = require('querystring');
const requestBody = {foo: 'bar'};
axios.post('http://httpbin.org/post', qs.stringify(requestBody), {headers: {'Content-Type': 'application/x-www-form-urlencoded'}})
.then(response => console.log(response.data))
.catch(error => console.error(error));
- 当
Content-Type
为multipart/form-data
时,我们常常在上传文件时使用。不同于以上两种,这里我们直接传入一个FormData
对象。
const axios = require('axios');
const FormData = require('form-data');
const fs = require('fs');
const form = new FormData();
form.append('file', fs.createReadStream('/path/to/file'));
axios.post('http://httpbin.org/post', form, {headers: form.getHeaders()})
.then(response => console.log(response.data))
.catch(error => console.error(error));
以上就是三种常见的设置和使用方法,希望对你有所帮助。
(scope provided) maven依赖关系中的provided使用详解 Maven 依赖关系中 provided 使用解释 全网首发(图文详解1)
(linux启动tomcat) 在Linux服务器下启动tomcat的三种方式 Tomcat 启动方式简介:主要有三种启动方式 全网首发(图文详解1)