簡體   English   中英

Node.js請求獲取VAST標簽

[英]Node.js request GET a VAST tag

我正在嘗試向某個返回VAST標記的網址發出GET請求。 當我卷曲網址時, 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>

我想在我的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)
})

似乎有些怪異,但是除非您指定User-Agent否則某些VAST引擎不會給出響應

這是我的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
    }
};

PS:我用了Fiddler cos,因為它是最短的,而且有效。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM