HarmonyOS鸿蒙Next中axios使用参数

HarmonyOS鸿蒙Next中axios使用参数

请教下axios的请求参数里面

// `params` 是即将与请求一起发送的 URL 参数
// 必须是一个无格式对象(plain object),其他对象如 URLSearchParams ,必须使用 paramsSerializer 进行序列化
params: {
ID: 12345
},

params这个值应该axios会自动把参数拼接到url query params吧,
但是当我实际使用的时候,并没有,
3 回复

三方件@ohos/axios中发起post请求,是以queryParams形式传递参数的(将参数拼接在URL后);可以参考以下两种方式:

方式一:使用axios.post接口只接收一个参数,Url.URLSearchParams需要转成字符串拼接在url后面。

let params:Url.URLSearchParams = new Url.URLSearchParams()
params.append('ctl', 'sug')
params.append('query', 'wangjunkai')
params.append('cfrom', '1099a')
axios.post('http://10.100.195.234:3000/save?' + params.toString()).then(res => {
  this.message = "request result: " + JSON.stringify(res.data);
}).catch(err => {
  this.message = "request error: " + err.message;
})

方式二:使用axios接口只接收一个config对象,请求参数写在config对象的params中

axios({
  url: 'http://10.100.195.234:3000/save',
  method: 'post',
  params: {
  ctl: 'sug',
  query: 'wangjunkai',
  cfrom: '1099a'
  }
}).then(res => {
  this.message = "request result: " + JSON.stringify(res.data);
}).catch(err => {
  this.message = "request error: " + err.message;
})

更多关于HarmonyOS鸿蒙Next中axios使用参数的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


是不是get请求?默认post是放message body里,

在HarmonyOS鸿蒙Next中使用axios进行网络请求时,参数的传递方式与在其他平台上的使用方式基本一致。axios支持多种参数传递方式,包括paramsdataheaders等。

  1. params参数:用于GET请求中,将参数附加在URL的查询字符串中。例如:

    axios.get('/api/data', {
        params: {
            id: 1,
            name: 'test'
        }
    });
    

    这将生成一个类似/api/data?id=1&name=test的URL。

  2. data参数:用于POST、PUT、PATCH等请求中,将参数作为请求体发送。例如:

    axios.post('/api/data', {
        id: 1,
        name: 'test'
    });
    

    这将把{ id: 1, name: 'test' }作为请求体发送。

  3. headers参数:用于设置请求头。例如:

    axios.get('/api/data', {
        headers: {
            'Authorization': 'Bearer token'
        }
    });
    

    这将设置请求头AuthorizationBearer token

在HarmonyOS鸿蒙Next中,axios的使用方式与在其他平台上相同,开发者可以根据需求选择合适的参数传递方式。

回到顶部