2016-09-15 3 views
1

VAST 태그를 반환하는 특정 URL에 GET 요청을 보내려고합니다. 내가 URL을 곱슬 곱슬 때, curl -v 'http://a.host.for.vasttag.com/foo/ad.jsp?fooid=someidhere' 나는 다음과 같은 일반 HTML을받을 :Node.js 요청 VAST 태그 받기

<script type="text/javascript" src="foobar.js"></script><script type="text/javascript">var FOO_customization = {"account":"foo1","playerid":"foo1232","inapp":"true","domain":"foodomain.com"}</script><script type="text/javascript" id="exampleBanner" src="http://this.is.net/banner/LATEST/inbanner.min.js"></script> 

내 node.app에서 같은 응답을 받고 싶습니다,하지만 난 단지이 나타납니다

<?xml version="1.0" encoding="utf-8"?> <VAST version="3.0"></VAST> 

을 나는 무엇을 잘못 했는가?

var http = require('http') 

var options = { 
    method : 'GET', 
    host: 'a.host.for.vasttag.com', 
    port: 80, 
    path: '/foo/ad.jsp?fooid=someidhere', 
    headers: {'Content-Type': 'text/html'}, 
} 

http.get(options, function(res) { 
    console.log("Got response: " + res.statusCode) 
    res.on("data", function(chunk) { 
    console.log(chunk) 
    }) 
}).on('error', function(e) { 
    console.log("Got error: " + e.message) 
}) 
+0

cURL 명령으로 질문을 업데이트 할 수 있습니까? – Stewart

+0

curl 명령을 추가했습니다. @Stewart – ikenator

+0

노드를 통해 헤더를 보내지 않으면 어떻게됩니까? – Stewart

답변

2

그것은 조금 이상한 것처럼 보일 수 있습니다,하지만 당신이 내 VAST 서버 사람이 나에게 말했다 무엇입니까 User-Agent

를 지정하지 않는 일부 VAST 엔진은 응답을 제공하지 않습니다 : 여기 내 코드입니다.

그리고 사용자 에이전트는 (이 광고 타겟팅에 사용되는)를 VAST 응답을 얻기 위해서는 프로토콜의 필수 헤더입니다. 그래서 User-Agent가 없으면 빈 응답을 얻습니다.

를 추가해보십시오

var options = { 
    method: 'GET', 
    host: 'a.host.for.vasttag.com', 
    port: 80, 
    path: '/foo/ad.jsp?fooid=someidhere', 
    headers: { 
     'Content-Type': 'text/html', 
     'User-Agent': 'Fiddler' //here 
    } 
}; 

P.S는 : 그것은 짧은이었고,이 일을 왜냐하면 내가 피들러를 사용했다.

+1

효과가있었습니다! 정말 고맙습니다! – ikenator