Problema ao acessar um serviço via HTTPS

Pessoal tenho esse pequeno aplicativo em Swing que acessa um serviço na web e que deve retornar uma string em formato XML.

Tenho a URL e alguns parâmetros que são obrigatórios.

Já tenho o mesmo aplicativo fazendo o acesso e a leitura do retorno corretamente em PHP, porém em java não consigo fazer isso sem problemas.

Segue parte do meu código:

[code]String url = “StoreName=” + nomeLoja + “&StoreID=” + idLoja + “&Username=” + usuario + “&Password=” + senha + “&ObjectName=” + nomeOperacao + “&method=” + nomeMetodo;
String strURL = "https://www.SERVIDOR.com.br/sistema/adm/APILogon.asp?" + url;
try {
strURL = java.net.URLEncoder.encode(strURL, “UTF-8”);
} catch (UnsupportedEncodingException ex) {
Logger.getLogger(OperacaoUI.class.getName()).log(Level.SEVERE, null, ex);
}
HostConfiguration host = new HostConfiguration();
host.setHost(“https://www.SERVIDOR.com.br”, 443, “https”);

PostMethod post = new PostMethod(strURL);

HttpClient httpclient = new HttpClient();
httpclient.setHostConfiguration(host);

int result = -1;
try {
result = httpclient.executeMethod(post);
System.out.println("Código de retorno: " + result);
System.out.println("Texto de retorno: ");
System.out.println(post.getResponseBodyAsString());
} catch (HttpException ex) {
Logger.getLogger(OperacaoUI.class.getName()).log(Level.SEVERE, null, ex);
} catch (IOException ex) {
Logger.getLogger(OperacaoUI.class.getName()).log(Level.SEVERE, null, ex);
} finally {
post.releaseConnection();
}
[/code]

O erro que está ocorrendo:

java.net.UnknownHostException: https://www.SERVIDOR.com.br at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:178) at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:157) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:391) at java.net.Socket.connect(Socket.java:579) at sun.security.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:618) at sun.security.ssl.SSLSocketImpl.<init>(SSLSocketImpl.java:451) at sun.security.ssl.SSLSocketFactoryImpl.createSocket(SSLSocketFactoryImpl.java:140) at org.apache.commons.httpclient.protocol.SSLProtocolSocketFactory.createSocket(SSLProtocolSocketFactory.java:82) at org.apache.commons.httpclient.protocol.SSLProtocolSocketFactory.createSocket(SSLProtocolSocketFactory.java:127) at org.apache.commons.httpclient.HttpConnection.open(HttpConnection.java:707) at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:387) at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:171) at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:397) at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:323) at apifast.ui.OperacaoUI.btnExecutarActionPerformed(OperacaoUI.java:520)

Alguém poderia me dar um help nisso?

Acredito que em PHP esteja funcionando pq está rodando em uma máquina que tem acesso a url SERVIDOR.com.br

Pode ser um problema de acesso a URL, problema de DNS de sua rede.

Execute o comando ping na máquina que vc está rodando a app (ping SERVIDOR.com.br).

Se pingar está ok, se não funcionar vc terá que mapear a URL no arquivo hosts de sua máquina apontando para o IP do servidor (ex: 10.0.7.8 servidor.com.br).

Ok, obrigado.

Já resolvi assim:

PostMethod post = new PostMethod("https://www.SERVIDOR.com.br/WEBSERVICE.asp"); post.addParameter("StoreName", nomeLoja); post.addParameter("StoreID", idLoja); post.addParameter("Username", usuario); post.addParameter("Password", senha); post.addParameter("ObjectName", nomeOperacao); post.addParameter("method", nomeMetodo); post.addParameter("OutputFormat", formatoRetorno); HttpClient httpclient = new HttpClient(); try { int retorno = httpclient.executeMethod(post); if (retorno == 200) { retornoXml = post.getResponseBodyAsString(); } else { JOptionPane.showMessageDialog(null, "Houve um problema ao tentar acessar o servidor.\nCódigo de retorno: " + retorno, "Problema no acesso", JOptionPane.INFORMATION_MESSAGE); } } catch (IOException ex) { Logger.getLogger(OperacaoUI.class.getName()).log(Level.SEVERE, null, ex); }