我正在尝试使用 Ruby 发布到 Google Measurement Protocol:
uri = URI.parse("http://www.google-analytics.com/collect")
params = {"v"=>"1", "tid"=>"UA-XXXXXXXX-X", "cid"=>"XXXXXXXXX.XXXXXXXXX", "t"=>"event", "ec"=>"200", "ea"=>"John"}
result = Net::HTTP.post_form(uri, params) #<Net::HTTPOK 200 OK readbody=true>
result.body # "GIF89a\x01\x00\x01\x00\x80\xFF\x00\xFF\xFF\xFF\x00\x00\x00,\x00\x00\x00\x00\x01\x00\x01\x00\x00\x02\x02D\x01\x00;"
还尝试发送 GET 请求而不是 POST:
RestClient.get("http://www.google-analytics.com/collect", params: params, timeout: 4, open_timeout: 4) # "GIF89a\x01\x00\x01\x00\x80\xFF\x00\xFF\xFF\xFF\x00\x00\x00,\x00\x00\x00\x00\x01\x00\x01\x00\x00\x02\x02D\x01\x00;"
并且没有跟踪该事件:
他们我试图通过简单地将它们输入 Chrome 来发送相同的参数:
有效:
我想当我使用 Ruby 将请求发送到管理协议时,我缺少一个标头或类似的东西。但我无法弄清楚我错过了什么。