2016-09-10 5 views
-2

요청 노드 라이브러리를 사용하여 GET 요청을 만들고 반환 된 응답에서 URL을 가져 오는 방법을 궁금해합니다.GET 요청에서 응답 URL 가져 오기

뭔가 반환 된 응답을 가정

var request = require('request'); 
request('http://www.somewebsite.com', function (error, response, body) { 
    if (!error && response.statusCode == 200) { 
    console.log(body) // grab the url here 
    } 
}) 

처럼 www.somewebsite.com하지만, 리디렉션되지 않습니다.

+0

당신이 무엇을 찾고 있는지 분명하지 않다. 자동으로 리디렉션하지 않고 대신'Location' 헤더를 얻으려고하지 않습니까? – mscdex

+0

우선, 리디렉션에서 상태 코드는 200이되지 않습니다. 물론 URL은 물론'Location' 헤더에 있습니다. – CBroe

답변

0

시작은 the documentation입니다. 리디렉션을 위해 그것을 검색하고 확인할 수있는 것들 :

followRedirect을 - 리디렉션로 HTTP 3xx의 응답을 따를 수 (디폴트는 true). 이 속성은 응답 객체를 단일 인수로 가져 오는 함수로 구현 될 수 있으며 리디렉션이 계속되어야한다면 true를 반환하고 그렇지 않으면 false를 반환해야합니다.

상태 코드에 유의하십시오. 리디렉션을 수행 한 후에 만 ​​200이 표시됩니다. 따라서

:

var request = require('request'); 
request({ 
     uri: 'http://google.com', 
     followRedirect: function(response) { 
      console.log("Redirecting to " + response.headers.location); 
      return true; 
     } 
    }, 
    function(error, response, body) { 
     if (!error && response.statusCode == 200) { 
      console.log(body) 
     } 
    } 
); 
+0

대단히 고마워요. – user2085143

관련 문제