首页 > 其他分享 >使用 Axios 进行 HTTP GET 请求的详尽指南

使用 Axios 进行 HTTP GET 请求的详尽指南

时间:2023-08-02 12:03:20浏览次数:45  
标签:axios const 请求 GET js Axios error HTTP

在进行网络请求时,axios 是一个非常常用的请求库。本文将介绍如何使用 axios 发起 GET 请求,并详细列出传参的几种写法。同时会提供一个实践案例,其中包含基本路由与请求处理的过程,并确保在 IDE 编辑器中可以顺利运行。

使用 Axios 进行 HTTP GET 请求的详尽指南_程序员

什么是 axios 的 GET 请求?

在开始之前,让我们简要了解一下 axios 是什么以及什么是 GET 请求。

Axios 简介

Axios 是一个流行的基于 Promise 的 HTTP 客户端,可以用于在浏览器和 Node.js 环境中发起 HTTP 请求。它具有易用性、强大的功能和广泛的社区支持,使其成为前端开发中首选的网络请求工具之一。

GET 请求概念

GET 请求是一种向服务器请求数据的方法。当你需要从服务器获取数据时,可以使用 GET 请求。GET 请求通常会附带一些参数,用于指定请求的条件或过滤结果。

Axios 的 GET 请求传参写法

接下来,我们将详细介绍如何使用 axios 进行 GET 请求,并列出几种传参的写法:

1. 基本的 GET 请求

以下是一个基本的 GET 请求代码示例:

// 引入 axios
const axios = require('axios');

// 发起 GET 请求
axios.get('https://api.example.com/data')
  .then(response => {
    // 请求成功处理
    console.log(response.data);
  })
  .catch(error => {
    // 请求失败处理
    console.error(error);
  });

2. 带参数的 GET 请求(直接拼接在 URL 上)

可以通过在 URL 上拼接参数来传递 GET 请求参数:

const axios = require('axios');

// 假设有两个参数:id 和 category
const id = 123;
const category = 'electronics';

// 使用模板字符串将参数拼接在 URL 上
axios.get(`https://api.example.com/data?id=${id}&category=${category}`)
  .then(response => {
    console.log(response.data);
  })
  .catch(error => {
    console.error(error);
  });

3. 带参数的 GET 请求(使用 params 对象)

axios 还提供了 params 对象选项,用于在 GET 请求中传递参数:

const axios = require('axios');

// 定义 params 对象
const params = {
  id: 123,
  category: 'electronics'
};

// 将 params 对象传递给 GET 请求
axios.get('https://api.example.com/data', { params })
  .then(response => {
    console.log(response.data);
  })
  .catch(error => {
    console.error(error);
  });

4. RESTful 风格的 GET 请求

如果使用 RESTful 风格的 API,通常会将参数直接作为 URL 的一部分:

const axios = require('axios');

// 假设需要获取 id 为 123 的商品信息
const productId = 123;

// 使用 RESTful 风格传递参数
axios.get(`https://api.example.com/products/${productId}`)
  .then(response => {
    console.log(response.data);
  })
  .catch(error => {
    console.error(error);
  });

实践案例

使用 Express.js 模拟服务器

为了演示 axios 的 GET 请求实例,我们将创建一个简单的 Node.js 服务器,并使用 Express.js 框架处理请求。确保在运行之前,你已经在项目中安装了 axios 和 Express.js。

首先,在项目目录中创建一个 server.js 文件,并添加以下代码:

const express = require('express');
const app = express();
const port = 3000;

app.get('/data', (req, res) => {
  // 假设这是一个模拟的数据
  const data = {
    id: req.query.id,
    category: req.query.category,
    message: 'Data retrieved successfully!'
  };

  res.json(data);
});

app.listen(port, () => {
  console.log(`Server is running on http://localhost:${port}`);
});

接下来,在终端中运行以下命令启动服务器:

node server.js

注:如果报错,请确保是否安装了 express,安装命令为npm install express

现在,你的服务器应该在 http://localhost:3000 上运行,并且可以处理 GET 请求。

最后,我们将在客户端使用 axios 发起 GET 请求。在项目目录中创建一个名为 client.js 的文件,并添加以下代码:

const axios = require('axios');

// 假设有两个参数:id 和 category  
const id = 123;  
const category = 'electronics';

axios.get('<http://localhost:3000/data>', { params: { id, category } })  
.then(response => {  
console.log(response.data);  
})  
.catch(error => {  
console.error(error);  
});

在终端中运行以下命令来运行客户端代码:

node client.js

如果一切顺利,你应该能够在控制台中看到从服务器获取的数据。

使用 Axios 进行 HTTP GET 请求的详尽指南_程序员_02

除此之外,我们还有更简便的方法,我们可以通过 Apifox 来模拟 Mock 数据,然后在 client.js 文件发起请求。

如何调试

Apifox 中集成了 API Mock,我们可以通过“云端 Mock” 来模拟请求。

首先在项目里开启云端 Mock,在“启用按钮”下方有一条服务 URL,这就是等会儿要请求的地址:

使用 Axios 进行 HTTP GET 请求的详尽指南_前端开发_03

然后新建一条接口,并在 “高级 Mock” 里设置期望条件以及响应数据:

使用 Axios 进行 HTTP GET 请求的详尽指南_前端_04

最后在client.js文件改写请求路径后,发起请求即可:

使用 Axios 进行 HTTP GET 请求的详尽指南_JavaScript_05

提示与注意事项

  • 使用 axios.get() 方法发起 GET 请求时,如果涉及到敏感信息(如用户凭据),建议使用 HTTPS 协议来保护数据安全。
  • 在实际开发中,建议将服务器地址、API 端点等配置参数提取到配置文件或环境变量中,以便于维护和部署。

总结

本文介绍了如何使用 axios 进行 GET 请求,并展示了四种不同的传参写法。我们还通过一个实践案例演示了如何在 Node.js 环境中使用 Express.js 创建简单的服务器,并与客户端进行数据交互。

通过本文,希望读者能够掌握 axios 发起 GET 请求的使用方法,并对传参写法有所了解。使用 axios,你可以轻松地与后端服务器进行数据交互,为前端开发带来更好的体验。

知识扩展:

参考链接

标签:axios,const,请求,GET,js,Axios,error,HTTP
From: https://blog.51cto.com/u_15964010/6935841

相关文章

  • System.Web.HttpException:“超过了最大请求长度。”
    BUG:前端想后端发送坐标数组,控制器出现了如下报错: Answer:该错误提示表明你的HTTP请求超过了服务器允许的最大请求长度。这是为了防止恶意攻击或意外的大型请求对服务器造成压力。为了解决这个问题,你可以尝试以下几种方法:增加服务器的最大请求长度:你可以在服务器的配置中......
  • docker 安装 bage私有nuget服务器并上传nuget包
    下载镜像dockerpullloicsharma/baget创建映射文件夹mkdir/data\mkdir/data/app\mkdir/data/app/bagetmkdir/data/app/baget/baget-data 写入配置文件baget.envecho"#以下配置是用于发布包的API密钥,您应该将其更改ApiKey的值以保护服务器。ApiKey=Nuge......
  • 《http篇》通过HttpListener实现http服务
    简单http服务如果想实现更高级http服务,可以看下述目录参考链接:https://blog.csdn.net/qq_36702996/article/details/78892380HttpListener提供一个简单的、可通过编程方式控制的HTTP协议侦听器。通过它可以很容易的提供一些Http服务,而无需启动IIS这类大型服务程序。注意:该类......
  • 浅谈-BeanWrapper bw = PropertyAccessorFactory.forBeanPropertyAccess(Object targe
    BeanWrapper是SpringFramework中的一个接口,它提供了一种方便的方式来访问Java对象的属性,并允许对属性进行读取和设置操作。PropertyAccessorFactory.forBeanPropertyAccess(this)是一个工厂方法,用于创建一个BeanWrapper对象,以便访问指定的Java对象的属性。举个例子来......
  • .net Nuget包管理
     两种包管理模式,一种是packages.config一种是PackageReference  packages.config程序包管理文件只存在于.NETFramework的项目中,比如下图,我创建了一个.NETFramework的项目: 在添加了NuGet程序包Newtonsoft.Json之后,会自动创建packages.config这个NuGet程序包 但在.NET......
  • 浅谈-HttpMessageConverter接口
    HttpMessageConverter接口是SpringFramework中的一个接口,用于处理HTTP请求和响应体的消息转换。解释如下:在SpringWeb应用中,控制器(Controller)处理HTTP请求时,通常会返回响应结果给客户端。这些响应结果可以是Java对象、字符串、JSON数据、XML数据等。HttpMess......
  • PHPGET请求的加密方法简介
    PHPGET请求的加密方法简介在Web开发中,经常会使用GET请求来获取远程服务器上的数据。然而,GET请求的数据通过URL传递,容易被拦截者获取并窃取其中的敏感信息。为了解决这个问题,我们可以采用加密方法来保护数据的安全性。PHPGET请求的加密方法简介下面介绍几种PHPGET请求的加密方法......
  • get_module
    get_module获取Linux内核模块的详细信息补充说明get_module命令用于获取Linux内核模块的详细信息。语法get_module模块名实例使用lsmod命令查看内核模块:lsmod|head-5ModuleSizeUsedbyipv627280115xfrm_nalgo......
  • Lazada shoppe Get Lazada Product Details API Return Value Description
     lazada.item_getRequestParametersRequestParameters:num_iid=267690734&nation=co.thParameterDescription:num_iid:lazadacommodityID(IstheIDofthecorrespondingcountryanddifferentcountriescannotbecommon)nation:countryTheoptionalvaluesfo......
  • 获取各大电商平台item_get商品详情api接口
    各平台的商品详情淘宝api接口的参数返回值、参数都如所下展示:以下是行业内了解到的一些情况,本帖只展示1688商品详情代码,需要更多API调试请移步获取API调用KEY以及秘钥https://console.open.onebound.cn/console/?i=Anzexiitem_get-获得1688商品详情公共参数名称类型必须描述keyStri......