我正在嘗試構建c#應用程序,它在網站中存在「更新」時通知我。 網站登錄表單包含3個文本框,它是login.aspx。從c#應用程序連接到.aspx網站
我的問題是,如何將3個細節「發送」到站點並從我想在c#中構建的應用程序進行連接(身份驗證),如果可能的話,我該怎麼做? 我尋找任何指南或東西閱讀關於這個,但沒有找到。
我正在嘗試構建c#應用程序,它在網站中存在「更新」時通知我。 網站登錄表單包含3個文本框,它是login.aspx。從c#應用程序連接到.aspx網站
我的問題是,如何將3個細節「發送」到站點並從我想在c#中構建的應用程序進行連接(身份驗證),如果可能的話,我該怎麼做? 我尋找任何指南或東西閱讀關於這個,但沒有找到。
您需要使用WebClient
類。這個類的更多信息,可以在http://msdn.microsoft.com/en-us/library/system.net.webclient(v=vs.80).aspx
謝謝,但有一個問題。我知道我需要知道頁面發送的參數,但是當我使用嗅探器嘗試時,我發現內容被加密爲很多字母。如何做到這一點? – user1840196
First you need post a form using c#
HttpWebRequest request = (HttpWebRequest)WebRequest.Create (args[0]);
// Set some reasonable limits on resources used by this request
request.MaximumAutomaticRedirections = 4;
request.MaximumResponseHeadersLength = 4;
// Set credentials to use for this request.
request.Credentials = CredentialCache.DefaultCredentials;
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
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());
response.Close();
readStream.Close();
then try to save cookie, its required to store aspnet_session_id into client for future requests
private class CookieAwareWebClient : WebClient
{
public CookieAwareWebClient()
: this(new CookieContainer())
{ }
public CookieAwareWebClient(CookieContainer c)
{
this.CookieContainer = c;
}
public CookieContainer CookieContainer { get; set; }
protected override WebRequest GetWebRequest(Uri address)
{
WebRequest request = base.GetWebRequest(address);
if (request is HttpWebRequest)
{
(request as HttpWebRequest).CookieContainer = this.CookieContainer;
}
return request;
}
}
一個很好的例子可以找到確保您發送的和每個請求恢復aspnet_session_id 。 和賓果!
我建議您閱讀this。
您需要模擬Web瀏覽器的行爲,例如:身份驗證,cookie和重定向。所以WebClient類可能會幫助你 – pylover