有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

asp。来自java的netpost

不知何故,正常的httpPost不会插入我发送的值

以下是html表单:

<form id="LoginForm" name="LoginForm" method="post" action="Login.aspx?__ufps=104203&ReturnUrl=%2fsyspower3%2fmobile%2fdefault.aspx&AspxAutoDetectCookieSupport=1">
<input type="hidden" name="__VIEWSTATE" value="/wEXAQUDX19QD2QPBvUTF2XiFM6IZg==">
<input type="hidden" name="__EVENTTARGET" value="">
<input type="hidden" name="__EVENTARGUMENT" value="">

<br>
<b>Username:</b><br>

<input name="ctl00$tbUsername"/><br>
<b>Password:</b><br>
<input name="ctl00$tbPwd" type="password"/><br>
<input type="checkbox" name="ctl00$chkRememberLogin" value="0" checked>Remember Me<br>
<input name="ctl00$cmdLogin" type="submit" value="Login"/>&nbsp;
                        <input name="ctl00$cmdForgetMe" type="submit" value="Forget Me"/>
</form>

这就是我在java中要做的:

HttpPost httppost2 = new HttpPost(
                    "www.website.com/Login.aspx?ReturnUrl=%2fsyspower3%2fmobile%2fdefault.aspx&AspxAutoDetectCookieSupport=1");

            List<NameValuePair> nameValuePairs2 = new ArrayList<NameValuePair>(4);
            nameValuePairs2.add(new BasicNameValuePair("ctl00$tbUsername", "username"));
            nameValuePairs2
                    .add(new BasicNameValuePair("ctl00$tbPwd", "password"));
            nameValuePairs2.add(new BasicNameValuePair("ctl00$chkRememberLogin", "0"));
            nameValuePairs2.add(new BasicNameValuePair("ctl00$cmdLogin", "Login"));
            nameValuePairs2.add(new BasicNameValuePair("ctl00$cmdForgetMe", "Forget Me"));

            httppost2.setEntity(new UrlEncodedFormEntity(nameValuePairs2));

            response = httpclient.execute(httppost2);
            String responseBody4 = EntityUtils.toString(response.getEntity());
            System.out.println(responseBody4);

但是形式没有改变,我的意思是输入中也没有值。。也许这不是解决问题的方法。完成表单提交的另一种方式是什么

编辑: 据我所知,我是否还必须发布u VIEWSTATE、u EEVENTTARGET、EVENTARGUMENT值 当我从wireshark检查Post值时,它们与我从应用程序发布的once相同。。。所以这有点让人困惑。我打赌这是VIEWSTATE值,我必须首先从服务中获取它,然后在发布文章时重用它


共 (1) 个答案

  1. # 1 楼答案

    请在NameValuePair对象中添加url参数(?ReturnUrl=%2fsyspower3%2fmobile%2fdefaulture.aspx&;aspxAutoDetectCookiesSupport=1”); ),还请确保指定正在使用的协议http://https://