asp.NET сообщение из Java - PullRequest
1 голос
/ 20 июля 2011

Каким-то образом обычный 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);

Но форма не меняется, я имею в виду, что во входных данных также нет значений .. Возможно, это не способ сделать это.Какой еще может быть способ отправки формы?

РЕДАКТИРОВАТЬ: Как я понял, я также должен публиковать значения __VIEWSTATE, __EEVENTTARGET, EVENTARGUMENT Когда я проверяю значения Post из wireshark, они идентичныЯ пишу из приложения ... так что это немного сбивает с толку.Могу поспорить, что это значение VIEWSTATE, которое я должен сначала получить из сервиса, а затем повторно использовать его при выполнении публикации

1 Ответ

0 голосов
/ 21 июля 2011

добавьте параметры URL в объект NameValuePair (? ReturnUrl =% 2fsyspower3% 2fmobile% 2fdefault.aspx & AspxAutoDetectCookieSupport = 1 ");), а также убедитесь, что вы указываете используемый протокол http:// или https://

...