Bom dia pessoal, estou com um problema e gostaria novamente de contar com a ajuda de vcs. Vamos lá entao.
Comecei a desenvolver um projeto para automacao de umas tarefas aqui da empresa que consite em acessar uma determinada pág da nossa intranet, pegar os dados do cliente, extrair apenas o necessário e savar estes dados. Estou usando a API java.net. Como este é meu primeiro projeto deste tipo, as dúvidas já comecaram desde o início. Segue o código:
import java.net.*;
import java.io.*;
import javax.net.ssl.*;
public class Main {
public static void main(String[] args) {
TrustManager[] trustAllCerts = new TrustManager[]{
new X509TrustManager() {
public java.security.cert.X509Certificate[] getAcceptedIssuers() {
return null;
}
public void checkClientTrusted(java.security.cert.X509Certificate[] certs, String authType) {}
public void checkServerTrusted(java.security.cert.X509Certificate[] certs, String authType) {}
}
};
try {
SSLContext sc = SSLContext.getInstance("SSL");
sc.init(null, trustAllCerts, new java.security.SecureRandom());
HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
URL url = new URL("https://intranet.bb.com.br/portal/APPS/servlet/br.com.bb.customizacao.servlets.paginas.ServletPaginaInicialIntranet?ctx=http://intranet.bb.com.br/portal/APPS");
HttpURLConnection conn = (HttpURLConnection)url.openConnection();
conn.setRequestProperty("Request-Method", "GET");
BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String inputLine;
while ((inputLine = in.readLine()) != null){
System.out.println(inputLine);
}
in.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
Quando executo o programa acima, recebo o código da página onde deve-se fazer o login:
.
.
.
<form name='loginForm' action='https://intranet.bb.com.br/portal/APPS/servlet/br.com.bb.customizacao.servlets.ServletAutenticador' method='post'><input type='hidden' name='browser' value=''/><input type='hidden' name='token' value=''/>
<h1 title="BEM-VINDO À INTRANET">BEM-VINDO À INTRANET</h1>
<table cellpadding="2" cellspacing="0" border="0">
<tr><td>Chave<br /><input type='text' alt='Informe a chave' title='Informe a chave' name='chave' value='' size='20' maxlength='08' onKeyup="javascript:SaltaCampo('chave','senha',8); "/></td></tr>
<tr><td>Senha<br /><input type='password' alt='Informe a senha' title='Informe a senha' name='senha' size='20' maxlength='08'/> <a title="Entrar" href="javascript:chamar();"><img src="/img/login/btn_entrar.gif" alt="Entrar" border="0" align="absmiddle" /></a></td></tr>
<tr><td class="font10regular"><img src="/img/login/ico_aviso.gif" alt="" align="middle" />Ao acessar a Intranet, você está concordando com o <a title="Termo de Responsabilidade" class="font10regular" href="javascript:popup('http://intranet.bb.com.br/portal/APPS/login/termoDeResponsabilidade.jsp','_blank',606,500);">Termo de Responsabilidade</a>.</td></tr>
</table>
<div id="noticias" style="width: 750px;"></div>
</form>
.
.
.
Se eu troco a URL acima por esta “https://intranet.bb.com.br/portal/APPS/servlet/br.com.bb.customizacao.servlets.ServletAutenticador” recebo um seguinte erro:
java.io.IOException: Server returned HTTP response code: 405 for URL: “<a href="https://intranet.bb.com.br/portal/APPS/servlet/br.com.bb.customizacao.servlets.ServletAutenticador">https://intranet.bb.com.br/portal/APPS/servlet/br.com.bb.customizacao.servlets.ServletAutenticador</a>”
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(Unknown Source)
at Main.main(Main.java:33)
A minha duvida eh o porque de nao conseguir acessar o recurso acima se ele é passado no action do form.