2016-06-12 52 views
-3

我想使用美國作爲國家/地區來訪問此url = http://www.tillys.com/product/Say-What/Short-Dresses/SAY-WHAT--Ribbed-Tank-Midi-Dress/Heather-Grey/285111595, 我已嘗試使用Cookie,但所有網址仍然重定向到網站的主頁頁。 我想查看是否有任何方法可以訪問此頁面。以下是我正在嘗試的代碼。無法訪問從美國作爲國家的網頁

下面是與我試圖做到這一點的功能:如果網站www.tillys.com使用Geo-fencing它會根據請求IP地址的查找你展示不同的內容

public static string getUrlContent (string url) 
    { 

     var myHttpWebRequest = (HttpWebRequest)WebRequest.Create(url); 
     myHttpWebRequest.Method = "GET"; 
     myHttpWebRequest.AllowAutoRedirect = true; 
     myHttpWebRequest.ContentLength = 0; 
     myHttpWebRequest.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"; 
     myHttpWebRequest.Headers.Add("Cookie", "=en%5FUS;"); 
     myHttpWebRequest.UserAgent = "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/49.0.2623.108 Chrome/49.0.2623.108 Safari/537.36"; 
     //myHttpWebRequest.Headers.Add("Accept-Encoding", "gzip, deflate, sdch"); 
     myHttpWebRequest.Headers.Add("Accept-Language", "en-US,en;q=0.8"); 
     myHttpWebRequest.Headers.Add("Cookie", "wlcme=true"); 
     //myHttpWebRequest.CookieContainer = new CookieContainer(); 
     //myHttpWebRequest.Headers.Add("X-Macys-ClientId", "NavApp"); 
     var response = (HttpWebResponse)myHttpWebRequest.GetResponse(); 
     var rmyResponseHeaders = response.Headers; 
     Console.WriteLine ("Content length is {0}", response.ContentLength); 
     Console.WriteLine ("Content type is {0}", response.ContentType); 

     // Get the stream associated with the response. 
     Stream receiveStream = response.GetResponseStream(); 
     // Pipes the stream to a higher level stream reader with the required encoding format. 
     StreamReader readStream = new StreamReader (receiveStream, Encoding.UTF8); 

     //Console.WriteLine ("Response stream received."); 
     Console.WriteLine (readStream.ReadToEnd()); 
     var josnStr = readStream.ReadToEnd(); 
     Console.WriteLine (josnStr); 
     return josnStr; 
     //Encoding enc1 = Encoding.GetEncoding(1252); 

    } 
+1

這是你無法直接在協議層面上解決的問題。你需要一個代理或VPN連接來爲你檢索文件或網頁(然後轉發) – Mario

+0

好吧,謝謝,我會嘗試設置VPN併發出Web請求。 – Asmit

回答

2

。在這種情況下,沒有任何C#或其他語言可以做。

您需要通過VPN代理您的請求(請參閱How to send WebRequest via proxy?)或將您的代碼部署到美國的數據中心。例如,如果您使用Azure,則可以部署到全球多個不同的數據中心,包括美國的多個數據中心。一旦你的代碼在美國運行,它應該能夠訪問美國版本的頁面。