찾다

웹 개발 과정에서 백엔드에 요청을 보내거나, 데이터를 얻거나, 일부 작업을 수행해야 하는 경우가 종종 있습니다. Node.js는 요청을 보내고 반환된 콘텐츠를 처리하는 빠르고 쉬운 방법을 제공합니다. 이 기사에서는 Node.js를 사용하여 HTTP/HTTPS 요청을 보내고 반환된 요청 콘텐츠를 처리하는 방법을 소개합니다.

먼저 Node.js에서 HTTP 요청을 보내는 데 널리 사용되는 방법인 request 패키지를 설치해야 합니다. 다음 명령을 통해 설치할 수 있습니다. request包,它是Node.js中发送HTTP请求的一种流行的方式。可以通过以下命令进行安装:

npm install request

安装完成后,就可以使用request包来发送HTTP/HTTPS请求了。

发送请求

使用request发送请求很简单,只需要传入一个URL参数即可,例如:

const request = require('request');

request('https://www.baidu.com', function (error, response, body) {
  console.log('error:', error); // 打印错误信息
  console.log('statusCode:', response && response.statusCode); // 打印响应状态码
  console.log('body:', body); // 打印HTML内容
});

上述代码发送一个GET请求到百度网站,并打印响应的状态码和HTML内容。

如果需要发送POST请求,则需要传入一个包含请求参数的实体:

const request = require('request');

request.post('https://api.example.com/login', {form: {username: 'example', password: 'password'}}, 
  function (error, response, body) {
    console.log('error:', error); // 打印错误信息
    console.log('statusCode:', response && response.statusCode); // 打印响应状态码
    console.log('body:', body); // 打印响应内容
  }
);

上述代码发送一个POST请求到https://api.example.com/login,并带上用户名和密码参数。form是一个参数实体,包含了请求的参数。

处理响应

当请求执行完毕后,request回调后将会返回一个响应对象,其中包含了响应的状态码和实体内容。可以使用response.statusCode访问响应状态码,使用response.body访问实体内容。

除了直接打印内容,还可以对返回的内容进行解析和处理。常见的处理方式有字符串解析、JSON解析、二进制解析等。

例如,当回调返回HTML内容时,可以使用cheerio或者node-html-parser来进行解析:

const request = require('request');
const cheerio = require('cheerio');

request('https://www.example.com', function (error, response, body) {
  if (!error && response.statusCode == 200) {
    const $ = cheerio.load(body);
    console.log($('title').text());
  }
});

上述代码使用cheerio解析HTML内容,打印了网页的标题。

当回调返回JSON格式的内容时,可以使用JSON.parse方法来解析JSON字符串。例如:

const request = require('request');

request('https://api.example.com/users/1', function (error, response, body) {
  if (!error && response.statusCode == 200) {
    const user = JSON.parse(body);
    console.log(user.name);
    console.log(user.email);
  }
});

上述代码解析了返回的JSON内容,并打印了用户的名称和邮箱。

当回调返回二进制内容时,可以使用Buffer对象来进行解码。例如:

const request = require('request');

request('https://www.example.com/logo.png', {encoding: null}, function (error, response, body) {
  if (!error && response.statusCode == 200) {
    const data = 'data:' + response.headers['content-type'] + ';base64,' + Buffer.from(body).toString('base64');
    console.log(data);
  }
});

上述代码获取了一个PNG图片,并使用Buffer对象将返回的二进制数据进行解码。

发送HTTPS请求

如果需要发送HTTPS请求,则需要使用https包。https包是Node.js自带的包,无需进行安装。可以像下面代码这样发送HTTPS请求:

const https = require('https');

https.get('https://www.example.com', function (response) {
  console.log('statusCode:', response.statusCode);
  console.log('headers:', response.headers);

  response.on('data', function (data) {
    console.log(data.toString());
  });
});

上述代码使用https.get方法发送了一个HTTPS GET请求,并打印了响应状态码和响应头。使用response.on方法可以监听返回内容的流并进行处理。

HTTPS请求需要进行安全认证,因此需要使用HTTPS证书。可以在参数中添加ca、cert、key等属性来指定证书。

例如:

const fs = require('fs');
const https = require('https');

const options = {
  ca: [fs.readFileSync('ca.pem')],
  cert: fs.readFileSync('cert.pem'),
  key: fs.readFileSync('key.pem')
};

https.get('https://www.example.com', options, function (response) {
  console.log('statusCode:', response.statusCode);
  console.log('headers:', response.headers);

  response.on('data', function (data) {
    console.log(data.toString());
  });
});

上述代码使用了自己的证书,其中ca是根证书的证书链,certkeyrrreee

설치가 완료된 후 request 패키지를 사용하여 HTTP/HTTPS 요청을 보낼 수 있습니다.

요청 보내기

request를 사용하여 요청을 보내는 것은 매우 간단합니다. 예를 들어 URL 매개변수만 전달하면 됩니다. 🎜rrreee🎜위 코드는 Baidu에 GET 요청을 보냅니다. 웹사이트를 방문하고 응답 코드와 HTML 콘텐츠의 상태를 인쇄합니다. 🎜🎜POST 요청을 보내야 하는 경우 요청 매개변수가 포함된 엔터티를 전달해야 합니다. 🎜rrreee🎜위 코드는 POST 요청을 https://api.example.com/login으로 보냅니다. code>를 사용자 이름 및 비밀번호 매개변수에 사용합니다. <code>form은 요청된 매개변수가 포함된 매개변수 엔터티입니다. 🎜🎜응답 처리🎜🎜요청이 완료되면 응답의 상태 코드와 엔터티 콘텐츠가 포함된 요청 콜백 후에 응답 개체가 반환됩니다. response.statusCode를 사용하여 응답 상태 코드에 액세스하고 response.body를 사용하여 엔터티 콘텐츠에 액세스할 수 있습니다. 🎜🎜콘텐츠를 직접 인쇄하는 것 외에도 반환된 콘텐츠를 구문 분석하고 처리할 수도 있습니다. 일반적인 처리 방법에는 문자열 구문 분석, JSON 구문 분석, 바이너리 구문 분석 등이 포함됩니다. 🎜🎜예를 들어 콜백이 HTML 콘텐츠를 반환하면 cheerio 또는 node-html-parser를 사용하여 다음을 구문 분석할 수 있습니다. HTML 콘텐츠를 만들고 웹페이지 제목을 인쇄합니다. 🎜🎜콜백이 JSON 형식으로 콘텐츠를 반환하는 경우 JSON.parse 메서드를 사용하여 JSON 문자열을 구문 분석할 수 있습니다. 예: 🎜rrreee🎜위 코드는 반환된 JSON 콘텐츠를 구문 분석하고 사용자 이름과 이메일을 인쇄합니다. 🎜🎜콜백이 바이너리 콘텐츠를 반환하면 디코딩을 위해 Buffer 개체를 사용할 수 있습니다. 예: 🎜rrreee🎜위 코드는 PNG 이미지를 얻고 Buffer 개체를 사용하여 반환된 이진 데이터를 디코딩합니다. 🎜🎜HTTPS 요청 보내기🎜🎜HTTPS 요청을 보내야 하는 경우 https 패키지를 사용해야 합니다. https 패키지는 Node.js와 함께 제공되는 패키지이므로 설치할 필요가 없습니다. 다음 코드와 같이 HTTPS 요청을 보낼 수 있습니다. 🎜rrreee🎜위 코드는 https.get 메서드를 사용하여 HTTPS GET 요청을 보내고 응답 상태 코드와 응답 헤더를 인쇄합니다. 반환된 콘텐츠의 스트림을 수신하고 처리하려면 response.on 메서드를 사용하세요. 🎜🎜HTTPS 요청에는 보안 인증이 필요하므로 HTTPS 인증서가 필요합니다. 매개변수에 ca, cert, key 및 기타 속성을 추가하여 인증서를 지정할 수 있습니다. 🎜🎜예: 🎜rrreee🎜위 코드는 자체 인증서를 사용합니다. 여기서 ca는 루트 인증서의 인증서 체인이고 certkey code> 그 자체가 인증서이자 개인 키입니다. 🎜🎜요약🎜🎜이 글에서는 Node.js에서 HTTP/HTTPS 요청을 보내는 방법과 반환된 콘텐츠를 처리하는 방법을 소개합니다. 마지막으로, HTTP 요청 전송에는 도메인 간 문제가 포함될 수 있으며 도메인 간 요청 헤더를 설정해야 한다는 점에 유의해야 합니다. 동시에 너무 많은 요청을 하거나 민감한 정보가 유출되지 않도록 보안 문제와 성능 문제에도 주의를 기울여야 합니다. 🎜

위 내용은 nodejs 요청 주소의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
useeffect 란 무엇입니까? 부작용을 수행하는 데 어떻게 사용합니까?useeffect 란 무엇입니까? 부작용을 수행하는 데 어떻게 사용합니까?Mar 19, 2025 pm 03:58 PM

이 기사에서는 Data Fetching 및 기능 구성 요소의 DOM 조작과 같은 부작용을 관리하기위한 후크 인 React의 useEffect에 대해 설명합니다. 메모리 누출과 같은 문제를 방지하기 위해 사용법, 일반적인 부작용 및 정리를 설명합니다.

게으른 하중의 개념을 설명하십시오.게으른 하중의 개념을 설명하십시오.Mar 13, 2025 pm 07:47 PM

게으른로드는 필요할 때까지 컨텐츠로드를 지연시켜 초기로드 시간과 서버로드를 줄임으로써 웹 성능 및 사용자 경험을 향상시킵니다.

카레는 JavaScript에서 어떻게 작동하며 그 이점은 무엇입니까?카레는 JavaScript에서 어떻게 작동하며 그 이점은 무엇입니까?Mar 18, 2025 pm 01:45 PM

이 기사는 다중 연계 기능을 단일 연계 함수 시퀀스로 변환하는 기술 인 JavaScript의 카레에 대해 논의합니다. Currying의 구현, 부분 응용 프로그램 및 실제 용도와 같은 혜택, 코드 읽기 향상을 탐색합니다.

JavaScript의 고차 기능은 무엇이며 어떻게 간결하고 재사용 가능한 코드를 작성하는 데 어떻게 사용할 수 있습니까?JavaScript의 고차 기능은 무엇이며 어떻게 간결하고 재사용 가능한 코드를 작성하는 데 어떻게 사용할 수 있습니까?Mar 18, 2025 pm 01:44 PM

JavaScript의 고차 기능은 추상화, 공통 패턴 및 최적화 기술을 통해 코드 간접성, 재사용 성, 모듈성 및 성능을 향상시킵니다.

React Reconciliation 알고리즘은 어떻게 작동합니까?React Reconciliation 알고리즘은 어떻게 작동합니까?Mar 18, 2025 pm 01:58 PM

이 기사는 가상 Dom 트리를 비교하여 DOM을 효율적으로 업데이트하는 React의 조정 알고리즘을 설명합니다. 성능 이점, 최적화 기술 및 사용자 경험에 미치는 영향에 대해 설명합니다. 문자 수 : 159

Connect ()를 사용하여 React 구성 요소를 Redux 상점에 어떻게 연결합니까?Connect ()를 사용하여 React 구성 요소를 Redux 상점에 어떻게 연결합니까?Mar 21, 2025 pm 06:23 PM

기사는 Connect ()를 사용하여 React 구성 요소를 Redux Store에 연결하고 MapStateToprops, MapDispatchtoprops 및 성능 영향을 설명합니다.

usecontext는 무엇입니까? 구성 요소간에 상태를 공유하는 데 어떻게 사용합니까?usecontext는 무엇입니까? 구성 요소간에 상태를 공유하는 데 어떻게 사용합니까?Mar 19, 2025 pm 03:59 PM

이 기사는 REACT의 USECONTEXT를 설명하며, 이는 PROP 시추를 피함으로써 상태 관리를 단순화합니다. 중앙 집중식 상태 및 성능 개선과 같은 렌더링을 통해 성능 향상과 같은 이점에 대해 논의합니다.

이벤트 핸들러의 기본 동작을 어떻게 방지합니까?이벤트 핸들러의 기본 동작을 어떻게 방지합니까?Mar 19, 2025 pm 04:10 PM

기사에서는 extentdefault () 메서드를 사용하여 이벤트 처리기의 기본 동작 방지, 향상된 사용자 경험과 같은 이점 및 접근성 문제와 같은 잠재적 문제에 대해 논의합니다.

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

SublimeText3 영어 버전

SublimeText3 영어 버전

권장 사항: Win 버전, 코드 프롬프트 지원!

SecList

SecList

SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

Dreamweaver Mac版

Dreamweaver Mac版

시각적 웹 개발 도구

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

SublimeText3 Linux 새 버전

SublimeText3 Linux 새 버전

SublimeText3 Linux 최신 버전