我想用C#代碼代替JavaScript代碼對谷歌分析谷歌Analytics(分析)在C#
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-xxxxxxx-x']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
C#
var query = HttpUtility.ParseQueryString(String.Empty);
query.Add("utmwv", "4.9");
query.Add("utmhn", "host name");
query.Add("utmcs", "UTF-8");
query.Add("utmul", "en-us");
query.Add("utmdt", "google analysis... c#");
query.Add("utmac", "UA-xxxxxx-x");
string m = "http://www.google-analytics.com/__utm.gif?";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(m);
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.Headers.Add("GData-Version", "2");
var uri = new UriBuilder("http://www.google-analytics.com/__utm.gif?");
uri.Query = query.ToString();
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri.ToString());
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.Headers.Add("GData-Version", "2");
byte[] data = Encoding.ASCII.GetBytes(query.ToString());
Stream input = request.GetRequestStream();
input.Write(data, 0, data.Length);
input.Close();
HttpWebResponse nsResponse = (HttpWebResponse)request.GetResponse();
Stream streamResponse = nsResponse.GetResponseStream();
StreamReader streamRead = new StreamReader(streamResponse);
string responseString = streamRead.ReadToEnd();
上面的代碼,我想提出一個web請求,但都無濟於事。我錯過了什麼,或者更好的方法嗎?
什麼是你得到的錯誤/ HTTP返回代碼? (假設你真的看到了響應) – BrokenGlass 2011-04-25 14:37:24
我收到了這個響應,沒有流量對谷歌分析。「GIF89a \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0,\ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0D \ 0;」 – Hidsman 2011-04-25 15:31:40
@Hidsman這個返回值是「GIF89a \ 0 \0 \0 \ 0 \ 0 \ 0,\ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0D \ 0;」好。因爲它將gif圖像作爲響應返回。 :) – DevT 2012-10-12 03:48:49