Nodejs HTTP请求模块got的使用

Nodejs HTTP请求模块got的使用
got 是一个非常强大且灵活的 Node.js HTTP 客户端库,用于发送 HTTP 请求。它支持多种功能,如重定向、代理、上传/下载进度事件等。下面是一些基本用法示例。

安装

首先,你需要安装 got 模块:

npm install got

基本 GET 请求

const got = require("got");

async function fetchUser() {
    try {
        const response = await got('https://jsonplaceholder.typicode.com/users/1');
        console.log(response.body); // 输出响应体
    } catch (error) {
        console.error(error.response ? error.response.body : error.message);
    }
}

fetchUser();

POST 请求

const got = require("got");

async function createUser() {
    try {
        const response = await got.post('https://jsonplaceholder.typicode.com/users', {
            json: {  // 自动处理 JSON 格式化和 Content-Type 设置
                name: "John Doe"
            },
            responseType: 'json' // 强制将响应体解析为 JSON
        });
        console.log(response.body);
    } catch (error) {
        console.error(error.response ? error.response.body : error.message);
    }
}

createUser();

使用 Headers 和 Query 参数

const got = require("got");

async function fetchWithHeadersAndQuery() {
    try {
        const response = await got.get('https://httpbin.org/get', {
            headers: {
                'X-Custom-Header': 'CustomValue'
            },
            searchParams: {  // 查询参数
                key: 'value'
            }
        });
        console.log(response.body);
    } catch (error) {
        console.error(error.response ? error.response.body : error.message);
    }
}

fetchWithHeadersAndQuery();

处理响应流

如果你需要处理大文件或实时数据流,可以使用响应流:

const fs = require('fs');
const got = require("got");

async function downloadFile() {
    const writer = fs.createWriteStream('file.zip');

    const response = await got.stream('https://example.com/file.zip');
    response.pipe(writer);

    writer.on('finish', () => {
        console.log('Download complete');
    });

    writer.on('error', (err) => {
        console.error(err.message);
    });
}

downloadFile();

错误处理

在上面的例子中,我们已经展示了如何捕获错误。got 会抛出错误,你可以在 catch 块中处理这些错误。错误对象通常包含响应信息(如果有的话),你可以通过 .response 属性访问。

更多功能

got 还支持许多其他功能,如超时控制、代理设置、自动重试、自定义中间件等。你可以查阅官方文档以获取更多信息:Got GitHub 页面


3 回复

当然!got 是一个非常强大且灵活的 HTTP 客户端,用于 Node.js。它比原生的 http 模块更易用,功能也更丰富。

首先,你需要安装 got

npm install got

然后你可以这样使用它:

const got = require('got');

async function fetchData() {
    try {
        const response = await got('https://api.github.com');
        console.log(response.body);
    } catch (error) {
        console.error(`请求失败:${error.message}`);
    }
}

fetchData();

如果你想发送 POST 请求,可以这样做:

const postData = { key1: 'value1', key2: 'value2' };

try {
    const response = await got.post('https://httpbin.org/post', { json: postData });
    console.log(response.body);
} catch (error) {
    console.error(`请求失败:${error.message}`);
}

got 还支持很多高级功能,比如设置请求头、处理响应流等等。希望这能帮到你!


got 是一个功能强大且易于使用的 Node.js HTTP 客户端库,它支持 HTTP/2 和多种高级特性。下面我将向你展示如何安装 got,以及如何进行基本的 GET 和 POST 请求。

1. 安装 got

首先,你需要安装 got 库。你可以通过 npm(Node 包管理器)来安装它:

npm install got

2. 使用 got 进行 GET 请求

GET 请求是最常见的请求类型之一,用于从服务器获取数据。下面是如何使用 got 发送 GET 请求的例子:

const got = require('got');

async function fetchData() {
    try {
        const response = await got.get('https://api.example.com/data');
        console.log(response.body); // 输出响应体
    } catch (error) {
        console.error(error.response ? error.response.body : error.message);
    }
}

fetchData();

3. 使用 got 进行 POST 请求

POST 请求通常用于向服务器发送数据。以下是如何使用 got 发送 POST 请求:

const got = require('got');

async function sendData() {
    try {
        const response = await got.post('https://api.example.com/data', {
            json: { key: 'value' }, // 将对象转换为 JSON 并设置 Content-Type 为 application/json
            responseType: 'json'
        });
        console.log(response.body); // 输出响应体
    } catch (error) {
        console.error(error.response ? error.response.body : error.message);
    }
}

sendData();

注意事项

  • 在发送请求时,务必处理可能出现的错误。上述代码中,我们使用了 try...catch 块来捕获和处理错误。
  • 当处理响应时,确保检查响应的状态码,以确保请求成功。
  • got 支持许多高级配置选项,如重定向、代理、超时等,具体请查阅官方文档:https://github.com/sindresorhus/got

这就是使用 got 库的基本指南。希望这对你有所帮助!

got 是一个功能强大的 Node.js HTTP 客户端模块。首先需要通过npm安装:npm install got。基本使用如下:

const got = require("got");

async function fetchData() {
    try {
        const response = await got('https://api.github.com');
        console.log(response.body);
    } catch (error) {
        console.error(error.response ? error.response.body : error.message);
    }
}

fetchData();

此代码段会向GitHub API发起GET请求,并打印响应体。支持Promise,参数配置丰富,包括设置headers、超时时间等。

回到顶部