使用webclient和WebRequest的POST不起作用

时间:2010-12-21 12:03:18

标签: c# httpwebrequest webclient

我想在c#中编写一个代码来上传带有文本框的html页面上的值,然后单击下面的按钮。

如果我查看页面源,则文本框有两个属性,即名称和ID。上传值时应使用哪一个?

我尝试使用webclient和http响应,但没有任何作用。

我开始使用vs 2010提供的演示ASP.Net应用程序。我无法使用此代码登录该页面

Html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">    
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">    
<head><title>    
    Log In    
</title><link href="../Styles/Site.css" rel="stylesheet" type="text/css" />    
</head>    
<body>    
    <form method="post" action="Login.aspx" onsubmit="javascript:return WebForm_OnSubmit();" id="ctl01">    
<div class="aspNetHidden">    
<input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" />    
<input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" />    
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUJMTM4OTQwMDM1ZBgBBR5fX0NvbnRyb2xzUmVxdWlyZVBvc3RCYWNrS2V5X18WAQUmY3RsMDAkTWFpbkNvbnRlbnQkTG9naW5Vc2VyJFJlbWVtYmVyTWXIWDJ/V4XPecqwQe85aLVZC5vuxVoEv8dHC/Mo9pwQZw==" />

</div>
<script type="text/javascript">    
//<![CDATA[    
var theForm = document.forms['ctl01'];    
if (!theForm) {    
    theForm = document.ctl01;    
}    
function __doPostBack(eventTarget, eventArgument) {    
    if (!theForm.onsubmit || (theForm.onsubmit() != false)) {    
        theForm.__EVENTTARGET.value = eventTarget;    
        theForm.__EVENTARGUMENT.value = eventArgument;    
        theForm.submit();    
    }    
}    
//]]>

</script>    
<script src="/WebSite1/WebResource.axd?d=M5W_658FhJm5n8t9pSFvKuIXRL5Jz7-D_eS0HTIT8JulfjzpAVV_rJb8XF2y3yXBzfewu3sSKDiVdWxirFJDeFUBJp7DwWkz9bRlwYT_VkQ1&amp;t=634271460710781250" type="text/javascript"></script>
<script src="/WebSite1/WebResource.axd?d=d41DICiQepBPG6K5sYiG4w6-5Zow9401xGbcRJ_YjjKKZBzgTrTC_CdIv9aUM1wPVO22HhAV6begkxuIulwZFj_WKMwGJvOFNsnT-yQ7hO41&amp;t=634271460710781250" type="text/javascript"></script>    
<script src="/WebSite1/WebResource.axd?d=XnFE4lWLk9gTnM0_06V_76Tt3DRk8edc94bUtBQAZMiY1p3YHp03awb6v8Nz44Zo-gdy2g6LBBsaWMuUeNLboK5ebvvrsIwawVtCZfaujlw1&amp;t=634271460710781250" type="text/javascript"></script>    
<script type="text/javascript">    
//<![CDATA[

function WebForm_OnSubmit() {

if (typeof(ValidatorOnSubmit) == "function" && ValidatorOnSubmit() == false) return false;    
return true;    
}    
//]]>    
</script>    
<div class="aspNetHidden">
    <input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="/wEWBQKA+oZWAsXK+OQPAtDNs5YCApW7jtAPAqfAqeMFgx5T3T+5v78wSO8pWO0ORp/qKya1HTwMXoYN8GOYDSo=" />
</div>    
    <div class="page">    
        <div class="header">    
            <div class="title">    
                <h1>    
                    My ASP.NET Application    
                </h1>    
            </div>    
            <div class="loginDisplay">                        
                        [ <a href="Login.aspx" id="HeadLoginView_HeadLoginStatus">Log In</a> ]
            </div>

            <div class="clear hideSkiplink">

                <a href="#NavigationMenu_SkipLink"><img alt="Skip Navigation Links" src="/WebSite1/WebResource.axd?d=kJ6t3tHV3cLpBZWByP4-yIKJkygtz3ErE4Tpn7tMIEa4uB2lty0z6Toys6myTCJiM7h32lxUN9nyuc9K6T9RIvRlxGRQvIJjoE2vXGjX6Bw1&amp;t=634271460710781250" width="0" height="0" style="border-width:0px;" /></a><div class="menu" id="NavigationMenu">

    <ul class="level1">

        <li><a class="level1" href="../Default.aspx">Home</a></li><li><a class="level1" href="../About.aspx">About</a></li>

    </ul>

</div><a id="NavigationMenu_SkipLink"></a>    
            </div>    
        </div>    
        <div class="main">
    <h2>   Log In </h2>
        <p>    
        Please enter your username and password.    
        <a id="MainContent_RegisterHyperLink" href="Register.aspx?ReturnUrl=">Register</a> if you don't have an account.    
    </p>    
            <span class="failureNotification">
            </span>    
            <div id="MainContent_LoginUser_LoginUserValidationSummary" class="failureNotification" style="display:none;">
</div>

            <div class="accountInfo">

                <fieldset class="login">

                    <legend>Account Information</legend>

                    <p>

                        <label for="MainContent_LoginUser_UserName" id="MainContent_LoginUser_UserNameLabel">Username:</label>

                        <input name="ctl00$MainContent$LoginUser$UserName" type="text" id="MainContent_LoginUser_UserName" class="textEntry" />

                        <span id="MainContent_LoginUser_UserNameRequired" title="User Name is required." class="failureNotification" style="visibility:hidden;">*</span>

                    </p>

                    <p>

                        <label for="MainContent_LoginUser_Password" id="MainContent_LoginUser_PasswordLabel">Password:</label>

                        <input name="ctl00$MainContent$LoginUser$Password" type="password" id="MainContent_LoginUser_Password" class="passwordEntry" />

                        <span id="MainContent_LoginUser_PasswordRequired" title="Password is required." class="failureNotification" style="visibility:hidden;">*</span>

                    </p>

                    <p>

                        <input id="MainContent_LoginUser_RememberMe" type="checkbox" name="ctl00$MainContent$LoginUser$RememberMe" />

                        <label for="MainContent_LoginUser_RememberMe" id="MainContent_LoginUser_RememberMeLabel" class="inline">Keep me logged in</label>

                    </p>

                </fieldset>

                <p class="submitButton">

                    <input type="submit" name="ctl00$MainContent$LoginUser$LoginButton" value="Log In" onclick="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(&quot;ctl00$MainContent$LoginUser$LoginButton&quot;, &quot;&quot;, true, &quot;LoginUserValidationGroup&quot;, &quot;&quot;, false, false))" id="MainContent_LoginUser_LoginButton" />

                </p>

            </div>





        </div>

        <div class="clear">

        </div>

    </div>

    <div class="footer">



    </div>



<script type="text/javascript">

//<![CDATA[

var Page_ValidationSummaries =  new Array(document.getElementById("MainContent_LoginUser_LoginUserValidationSummary"));

var Page_Validators =  new Array(document.getElementById("MainContent_LoginUser_UserNameRequired"), document.getElementById("MainContent_LoginUser_PasswordRequired"));

//]]>

</script>



<script type="text/javascript">

//<![CDATA[

var MainContent_LoginUser_LoginUserValidationSummary = document.all ? document.all["MainContent_LoginUser_LoginUserValidationSummary"] : document.getElementById("MainContent_LoginUser_LoginUserValidationSummary");

MainContent_LoginUser_LoginUserValidationSummary.validationGroup = "LoginUserValidationGroup";

var MainContent_LoginUser_UserNameRequired = document.all ? document.all["MainContent_LoginUser_UserNameRequired"] : document.getElementById("MainContent_LoginUser_UserNameRequired");

MainContent_LoginUser_UserNameRequired.controltovalidate = "MainContent_LoginUser_UserName";

MainContent_LoginUser_UserNameRequired.errormessage = "User Name is required.";

MainContent_LoginUser_UserNameRequired.validationGroup = "LoginUserValidationGroup";

MainContent_LoginUser_UserNameRequired.evaluationfunction = "RequiredFieldValidatorEvaluateIsValid";

MainContent_LoginUser_UserNameRequired.initialvalue = "";

var MainContent_LoginUser_PasswordRequired = document.all ? document.all["MainContent_LoginUser_PasswordRequired"] : document.getElementById("MainContent_LoginUser_PasswordRequired");

MainContent_LoginUser_PasswordRequired.controltovalidate = "MainContent_LoginUser_Password";    
MainContent_LoginUser_PasswordRequired.errormessage = "Password is required.";    
MainContent_LoginUser_PasswordRequired.validationGroup = "LoginUserValidationGroup";    
MainContent_LoginUser_PasswordRequired.evaluationfunction = "RequiredFieldValidatorEvaluateIsValid";    
MainContent_LoginUser_PasswordRequired.initialvalue = "";    
//]]>    
</script>
<script type='text/javascript'>new Sys.WebForms.Menu({ element: 'NavigationMenu', disappearAfter: 500, orientation: 'horizontal', tabIndex: 0, disabled: false });</script>

<script type="text/javascript">    
//<![CDATA[
var Page_ValidationActive = false;    
if (typeof(ValidatorOnLoad) == "function") {

    ValidatorOnLoad();

}
function ValidatorOnSubmit() {    
    if (Page_ValidationActive) {    
        return ValidatorCommonOnSubmit();    
    }    
    else {    
        return true;    
    }    
}    
        //]]>    
</script>    
</form>    
</body>

 var strId = UserName.Text;
        var strName = UserPass.Text;
        var encoding = new ASCIIEncoding();
        var postData = "ctl00$MainContent$LoginUser$UserName=" + strId;
        postData += ("ctl00$MainContent$LoginUser$Password=" + strName);
        byte[] data = encoding.GetBytes(postData);
        var myRequest =              (HttpWebRequest)WebRequest.Create("http://localhost:6226/WebSite1/Account/Login.aspx");
        myRequest.Method = "POST";
        myRequest.ContentType = "application/x-www-form-urlencoded";
        myRequest.ContentLength = data.Length;
        var newStream = myRequest.GetRequestStream();
        newStream.Write(data, 0, data.Length);
        newStream.Close();
        var response = myRequest.GetResponse();
        var responseStream = response.GetResponseStream();
        var responseReader = new StreamReader(responseStream);
        textBox1.Text = responseReader.ReadToEnd();

1 个答案:

答案 0 :(得分:0)

我没有看到'&amp;'在帖子数据元素之间。

相关问题