Node.js请求获取一个VAST标签

Node.js request GET a VAST tag

本文关键字:一个 VAST 标签 js 请求 获取 Node      更新时间:2023-09-26

我正试图对返回VAST标记的某个url进行GET请求。当我curl url, curl -v 'http://a.host.for.vasttag.com/foo/ad.jsp?fooid=someidhere',我收到像这样的正常html:

<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>

我希望在我的节点中收到相同的响应。应用程序,但我只收到这个:

<?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)
})

这可能看起来有点奇怪,但是一些VAST引擎不会给出响应,除非您指定User-Agent

这是我的VAST服务器人员告诉我的。

User-Agent是协议的强制标头,以便获得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:我用Fiddler,因为它是最短的,而且很好用。