Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#WinForms-使用WebClient在经过身份验证的页面上填写表单元素并提交它们_C#_Winforms_Webclient - Fatal编程技术网

C#WinForms-使用WebClient在经过身份验证的页面上填写表单元素并提交它们

C#WinForms-使用WebClient在经过身份验证的页面上填写表单元素并提交它们,c#,winforms,webclient,C#,Winforms,Webclient,使用来自的最佳答案,我可以成功提交登录表单,并使用WebClient获得经过身份验证的网页: var loginCredentials = new NameValueCollection { { "username", "user123" }, { "password", "pass321" }, }; client.UploadValues( @"http://www.mywebsite.com/User/Log

使用来自的最佳答案,我可以成功提交登录表单,并使用WebClient获得经过身份验证的网页:

    var loginCredentials = new NameValueCollection
    {
        { "username", "user123" },
        { "password", "pass321" },
    };

    client.UploadValues(
        @"http://www.mywebsite.com/User/Login?ReturnUrl=" +
        @"http://www.mywebsite.com/Tickets/Search", loginCredentials);
但是,当我尝试提交另一个表单来搜索结果网页上的特定过滤器(一个是“下拉”元素,另一个是“选项”元素)时,我在方法UploadValues上得到一个webexception:

    var jitbitSearch = new NameValueCollection
    {
        { "fromUserId_username", "447" },
        { "statusId", "-3" },
    };

    try
    {
        client.UploadValues(
        @"http://www.mywebsite.com/Tickets/Search", jitbitSearch);
    }
    catch {}

    string result = client.DownloadString("http://www.mywebsite.com/Tickets/Search");
    textBox1.Text = result;
来自userid\u username的HTML输出(下拉列表):


$(函数(){
InitUserBox('fromUserId',“”);
});
状态ID的HTML输出(选择选项):

状态:
经历
分析中
悬而未决的
暂停
关闭
正在测试中
新的
正在开发中
再发生
--------
(不)经历
(未)在分析中
(未)待决
(不)暂停
(未)关闭
(未)正在测试中
(不是)新的
(未)正在开发中
(非)经常性
知道是什么导致了异常吗?是因为UploadValues方法不支持这种输入吗?谢谢

注意:即使我注释掉其中一个表单输入,它们都会触发webexception

编辑:我得到的例外情况如下:
“远程服务器返回了一个错误:(500)内部服务器错误”。

回答我的问题,做这个小改动对我很有效:

byte[] request = client.UploadValues(@"http://www.mywebsite.com/Tickets/Search", "POST", jitbitSearch);
string req = Encoding.UTF8.GetString(request);
textBox1.Text = req;

“我得到一个webexception”-你能编辑你的问题以包含异常的详细信息吗,包括任何内部异常。@stuartd更新!这是你的网站还是第三方网站?@stuartd这是Jitbit提供的第三方帮助台解决方案。使用Fiddler检查实际网络流量可能会有所帮助。
<td>Status:</td>
<td><select name="statusId">
        <option value=""></option>
                <option value="10"  >Undergoing</option>
                <option value="5"  >Under analysis</option>
                <option value="2"  >Pending</option>
                <option value="6"  >On hold</option>
                <option value="3"  >Closed</option>
                <option value="1"  >Under testing</option>
                <option value="4"  >New</option>
                <option value="7"  >Under development</option>
                <option value="8"  >Recurring</option>
            <option value="">--------</option>
                <option value="-10"  style="color:#CC6666;">(not) Undergoing</option>
                <option value="-5"  style="color:#CC6666;">(not) Under analysis</option>
                <option value="-2"  style="color:#CC6666;">(not) Pending</option>
                <option value="-6"  style="color:#CC6666;">(not) On hold</option>
                <option value="-3"  style="color:#CC6666;">(not) Closed</option>
                <option value="-1"  style="color:#CC6666;">(not) Under testing</option>
                <option value="-4"  style="color:#CC6666;">(not) New</option>
                <option value="-7"  style="color:#CC6666;">(not) Under development</option>
                <option value="-8"  style="color:#CC6666;">(not) Recurring</option>
    </select>
byte[] request = client.UploadValues(@"http://www.mywebsite.com/Tickets/Search", "POST", jitbitSearch);
string req = Encoding.UTF8.GetString(request);
textBox1.Text = req;