2013-05-21 119 views
0

極品檢索網站飼料使用谷歌網絡的主人API網站管理員API和C#的WebClient

WebClient client = new WebClient(); 
client.Headers.Add("Authorization: GoogleLogin auth=" + _auth); 
client.Headers.Add("GData-Version: 2"); 
client.Headers.Add("Content-Type", "application/atom+xml"); 
Stream stream = client.OpenRead("https://www.google.com/webmasters/tools/feeds/sites/http%3A%2F%2Fando.ueuo.com%2F/"); 
string str = reader.ReadToEnd(); 

但每次服務器返回錯誤(400)錯誤的請求給定網站。

同時,URL https://www.google.com/webmasters/tools/feeds/sites/的相同代碼正常工作,並按預期獲取所有網站的提要。

client.Headers.Add("Authorization: GoogleLogin auth=" + _auth); 
client.Headers.Add("GData-Version: 2"); 
client.Headers.Add("Content-Type", "application/atom+xml"); 
Stream stream =client.OpenRead("https://www.google.com/webmasters/tools/feeds/sites/"); 
StreamReader reader = new StreamReader(stream); 
string str = reader.ReadToEnd(); 

有人可以幫忙嗎?

回答

0

在「https://www.google.com/webmasters/tools/feeds/sites/http%3A%2F%2Fando.ueuo.com%2F/」中,%2F是與/編碼的網址相同的網址。問題在於你之後有斜線,所以它變成了 「//」。

更改爲「https://www.google.com/webmasters/tools/feeds/sites/http%3A%2F%2Fando.ueuo.com%2F

我覺得它更容易使用System.Web.HttpUtility做所有的編碼。

var encodedUrl = HttpUtility.UrlEncode("SITE NAME HERE"); 
string request = "https://www.google.com/webmasters/tools/feeds/sites/" + encodedUrl; 
Stream stream = client.OpenRead(request); 

如圖所示的網絡管理者儀表盤URL的網站(不是你把它命名爲)

站點名稱必須完全匹配