이 기사는 nodejs http 요청에 대한 요약을 제공합니다. 특정 참고 가치가 있으므로 도움이 필요한 친구가 참고할 수 있기를 바랍니다.
노드에서 제공하는 http 모듈을 통해 제공되는 get() 및 request() 메서드를 통해 http 요청을 시작할 수 있습니다. get()은 get 요청을 시작하는 데 편리한 request() 메서드의 캡슐화입니다. 게시 요청을 구현하려면 request() 메서드를 캡슐화해야 합니다.
request() 메소드
let req = http.request("http://www.baidu.com", (res) =>{ console.log(res.statusCode); }); req.end();//必须调用end()方法结束请求
request() 메소드를 사용하여 http 요청을 시작할 때 request() 메소드는 요청 객체를 반환하고, 반환된 요청 객체의 end() 메소드는 반드시 요청 작업이 완료되었음을 나타내기 위해 호출됩니다. 그렇지 않으면 요청이 보류되어 요청된 작업이 완료될 때까지 기다립니다.
request() 메서드 매개변수 문제:
request()의 첫 번째 매개변수는 URL 주소가 직접 될 수 있으며, 두 번째 매개변수는 요청이 완료되고 서버 응답을 받은 후의 콜백 함수입니다. reslet req = http.request("http://www.baidu.com", (res) =>{ console.log(res.statusCode); }); req.end();//必须调用end()方法结束请求request() 객체의 첫 번째 매개변수는 요청 데이터 구성 객체일 수 있으며, 두 번째 매개변수는 요청이 완료되고 서버 응답이 수신된 후의 콜백 함수입니다. response 객체 res
let req = http.request({hostname:"www.baiduc.com",port:80}, (res) =>{ console.log(res.statusCode); }); req.end();//必须调用end()方法结束请求
인 매개변수는 request() 메소드가 URL 주소와 요청 데이터 구성 객체를 동시에 전달할 수 없다는 점에 유의해야 합니다. , request() 메소드는 http를 시작하기 위해 두 개의 매개변수
get() 메소드
let req = http.get("http://www.baidu.com", (res) =>{ console.log(res.statusCode); });
get() 메소드만 전달할 수 있습니다. 요청할 때 get() 메소드는 요청 객체도 반환하지만 end() 메소드는 request() 메소드와는 다른 요청 객체를 통해 수행됩니다.
get() 메소드 매개변수 문제:
get() 메소드와 request() 메소드의 매개변수가 동일합니다. 즉, end() 메소드를 호출할 필요가 없습니다.
요청 시간 초과 설정 방법
요청 시간 초과를 설정하려면 get() 또는 request() 메서드에서 반환된 요청 객체의 setTimeout() 메서드를 사용할 수 있습니다.let req = http.get("http://www.baidu.com", (res) =>{ console.log(res.statusCode); }); req.setTimeout(1,()=>{ console.log(`请求超时了`); req.abort();//终止请求 });
1밀리초 후에도 응답이 없으면 setTimeout 콜백 함수가 트리거되며 이때 요청을 직접 종료할 수 있습니다.
2 이를 달성하기 위해 다음과 같이 타이머를 설정할 수도 있습니다.
let requestTimer = null; let req = http.get("http://www.baidu.com", (res) =>{ console.log(res.statusCode); if(res.statusCode === 200){ clearTimeout(requestTimer);//请求超时之前完成,清除超时定时器 } }); requestTimer = setTimeout(() => { req.emit("timeout", {"msg": "请求超时了"});//如果请求超时了则发送timeout事件 }, 1000); req.on("timeout",(msg) => {//监听timeout事件并终止请求 console.log(`收到timeout事件!`); req.abort(); console.log(`终止请求`); });
응답 데이터 가져오기
get() 및 request() 메서드 콜백 함수의 응답 개체 res는 응답 데이터를 전달하지 않습니다. 데이터에 응답하려면 데이터를 수신하고 응답 개체를 통해 이벤트를 종료해야 합니다.
let req = http.get("http://www.baidu.com", (res) =>{ let resStr = ""; res.on("data", (res) => { resStr += res; }); res.on("end", () => { console.log(resStr); }); });
【관련 추천: node.js 동영상 튜토리얼】
위 내용은 nodejs http 요청 관련 요약 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!