0
我需要使用POST方法來發送HTTP請求到一個Asp.Net形式提交asp.net形式,這種形式是一個登錄表單包括3個控制:發送HTTP請求的數據和使用C#
- 文本框對用戶名(名稱=「x」和id =「IX」)。
- TextBox的密碼(名稱=「P」和ID =「IP」)。
- 按鈕提交(名稱=「S」和id =「IS」)。
我嘗試下面的代碼:
string getUrl = "http://url/login.aspx";
string postData = String.Format("x={0}&P={1}", "usernamevalue", "passwordvalue");
HttpWebRequest getRequest = (HttpWebRequest)WebRequest.Create(getUrl);
getRequest.Method = WebRequestMethods.Http.Post;
getRequest.UserAgent = "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.874.121 Safari/535.2";
getRequest.AllowWriteStreamBuffering = true;
getRequest.ProtocolVersion = HttpVersion.Version11;
getRequest.AllowAutoRedirect = true;
getRequest.ContentType = "application/x-www-form-urlencoded";
byte[] byteArray = Encoding.ASCII.GetBytes(postData);
getRequest.ContentLength = byteArray.Length;
Stream newStream = getRequest.GetRequestStream(); //open connection
newStream.Write(byteArray, 0, byteArray.Length); // Send the data.
newStream.Close();
HttpWebResponse getResponse = (HttpWebResponse)getRequest.GetResponse();
using (StreamReader sr = new StreamReader(getResponse.GetResponseStream()))
{
string sourceCode = sr.ReadToEnd();
}
和檢索字符串源碼當它返回登錄頁面inspite它應該返回其重定向到它提交成功登錄後首頁的HTML。
我認爲使用的代碼沒有提交按鈕,我需要通過將數據傳遞給控件來解決這個問題,然後單擊按鈕提交,然後獲取主頁(成功登錄後)而不是登錄頁面響應的響應。
在此先感謝。
使用cookiecontainer獲取響應cookie。然後用相同的cookie容器向主頁發送請求。 – halit
你說它成功登錄了,值得注意的是它不應該有,因爲你沒有給它任何驗證令牌或任何東西,所以它很容易受到跨站請求僞造。 – Matthew
提供的代碼沒有執行成功的登錄,我需要一個代碼來執行成功的登錄,並通過按鈕提交點擊操作,我在我的登錄頁面的URL設置斷點,並沒有達到按鈕事件。 – Ahmy