Я пытаюсь войти в систему отчетов, используя Java.До сих пор я пробовал МНОГИЕ различные реализации, которые использовали HttpURLConnection.HTML-код, который я пытаюсь опубликовать, сводится к следующему:
<form name="logonForm" method="POST" action="http://remoteserver/logon.object">
<input type="hidden" name="qryStr" value="">
<input type="hidden" name="cmsVisible" value="true">
<input type="hidden" name="authenticationVisible" value="true">
<input type="hidden" name="referer" value="">
<input type="hidden" name="refererFormData" value="">
<input type="hidden" name="isFromLogonPage" value="true">
<input type="text" name="cms" value="xxxxx" class="textfield" id="apsTextEdit">
<input type="text" name="username" value="xxxxx"class="textfield" id="usernameTextEdit">
<input type="text" name="password" value="xxxxx"class="textfield" id="passwordTextEdit">
<select name="authType"id="authenticationSelectBox">
<option selected value='xxxxx'>xxxxx</select>
<input type="submit" name="SUBMIT">
</form>
Я знаю, что эта форма обеспечивает корректный ввод, потому что когда я нажимаю кнопку Отправить в браузере, она регистрирует меня в моей системе отчетов.Тем не менее, я всегда возвращаю вышеупомянутый html как ответ, когда посылаю программный запрос.Примечание. Я пробовал около миллиона реализаций, которые использовали HttpURLRequest.Один пример:
OutputStreamWriter wr = new OutputStreamWriter(connection.getOutputStream());
wr.write(parameters);
wr.flush();
// Get the response
BufferedReader rd = new BufferedReader(new InputStreamReader(connection.getInputStream()));
String line;
String allLines = "";
while ((line = rd.readLine()) != null) {
allLines += "\n" + line; // Process line...
}
wr.close();
rd.close();
return allLines;
Где 'параметры' варьируются от нуля до каждого URL-кодированного параметра из HTML-кода, который я разместил, и соединение (в настоящее время, как я пробовал другие конфигурации) настраивается следующим образом:
connection = (HttpURLConnection) url.openConnection();
HttpURLConnection.setFollowRedirects(true);
connection.setDoOutput(true);
connection.setDoInput(true);
connection.setRequestMethod("POST");
connection.setAllowUserInteraction(false);
connection.setRequestProperty("Content-type", "application/x-www-form-urlencoded; charset=" + "UTF-8");
connection.setUseCaches(false);
connection.connect();
Я знаю, что детали немного редки, поэтому дайте мне знать, если вам нужна дополнительная информация, и большое спасибо за любой вклад!