我在應用程序的一個使用此方法:
private static string RetrieveData(string url)
{
// used to build entire input
var sb = new StringBuilder();
// used on each read operation
var buf = new byte[8192];
try
{
// prepare the web page we will be asking for
var request = (HttpWebRequest)
WebRequest.Create(url);
/* Using the proxy class to access the site
* Uri proxyURI = new Uri("http://proxy.com:80");
request.Proxy = new WebProxy(proxyURI);
request.Proxy.Credentials = new NetworkCredential("proxyuser", "proxypassword");*/
// execute the request
var response = (HttpWebResponse)
request.GetResponse();
// we will read data via the response stream
Stream resStream = response.GetResponseStream();
string tempString = null;
int count = 0;
do
{
// fill the buffer with data
count = resStream.Read(buf, 0, buf.Length);
// make sure we read some data
if (count != 0)
{
// translate from bytes to ASCII text
tempString = Encoding.ASCII.GetString(buf, 0, count);
// continue building the string
sb.Append(tempString);
}
} while (count > 0); // any more data to read?
}
catch(Exception exception)
{
MessageBox.Show(@"Failed to retrieve data from the network. Please check you internet connection: " +
exception);
}
return sb.ToString();
}
你必須只通過網頁,而您需要檢索代碼的URL。
例如:
string htmlSourceGoggle = RetrieveData("www.google.com")
注意:您可以得到取消註釋代理配置,如果你使用代理訪問互聯網。將代理地址,用戶名和密碼替換爲您使用的地址。
對於通過代碼登錄。檢查:Login to website, via C#
感謝這麼多,這也爲基於URL獲取源工作(這我也有最初的工作)。但同樣因爲我的網站需要登錄才能查看特定頁面(比如說,在查詢字符串中指定了哪個頁面的頁面),它始終會檢索登錄頁面的來源,因爲如果您嘗試去只是在沒有登錄的URL上的那個頁面,它不會讓你。不知道該怎麼做,或者甚至有什麼我可以做的。 – Drew
@Drew我有一個鏈接更新了答案 – reggie
http://stackoverflow.com/questions/930807/c-sharp-login-to-website-via-program/931030#931030 – reggie