Hace unos días una de las programadoras que más admiro me comentaba que necesitaba conectarse desde Java a un Web Service construido en .Net con autenticación, aunque este ejemplo no sólo sirve para WS server hechos con esta tecnología, igualmente servirá si fue creado con java, delphi, u otro lenguaje. Me pareció una tarea interesante que es relativamente sencilla de hacerla. También me di cuenta que en la Web no circula mucha información sobre esto, por eso aprovecho para hacer un post sobre el tema
Bueno, el ejemplo lo mostraré desde dos clientes, uno hecho con Java y otro con Visual Basic .Net
En el caso de Java necesitaremos crear una clase extra para usarlo como credencial de red y va así..
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | package ws; import java.net.Authenticator; import java.net.PasswordAuthentication; /** * * @author GeekZero@DevTroce.com */ public class MiAutenticador extends Authenticator { static final String user = "miUsuario"; // Login static final String pass = "miPassword"; // Password @Override public PasswordAuthentication getPasswordAuthentication() { return (new PasswordAuthentication(user, pass.toCharArray())); } } |
El cliente está hecho en una aplicación swing con los controles con sus nombres por omisión, teniendo un jTextField y un jButton, el código es el siguiente..
1 2 3 4 5 6 7 8 9 10 11 12 | private void clickws(java.awt.event.ActionEvent evt) { // credenciales para el WS Authenticator.setDefault(new ws.MiAutenticador()); // instancia referenciada del WS ws.MiWebService wsrv = new ws. MiWebService (); try { // consumo del WS jTextField1.setText(wsrv.getMiWebServiceGetMiMetodoSoap().getMiMetodo(parametro1, parametro2). getMiMetodo().toString()); } catch (Exception e) { JOptionPane.showMessageDialog(null,"MENSAJE: " + e.getMessage()); } } |
Esto mismo lo hacemos en Visual Basic del siguiente modo, obviamente primero debemos crear la referencia del WS en el IDE, esto también es aplicable en el caso de Java o esto no funcionará..
1 2 3 4 5 6 7 8 9 10 11 12 | Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click ' instancia del web service referenciado Dim x As New ws.miWebService Try ' asignacion de la credencial de red x.Credentials = New System.Net.NetworkCredential("miUsuario", "miPassword") ' consumir el WS TextBox1.Text = x.GetMiMetodo(parametro1, parametro2).getMiMetodo Catch ex As Exception MessageBox.Show(ex.Message) End Try End Sub |
Nota: La referencia del WS lo hice con compatibilidad .Net 3.5 / Metro 1.3
Articulos Relacionados:









en
en
en
en
disculpa soy principiante y me gustaria saver
donde se declara la clase MiWebService y el metodo
getMiWebServiceGetMiMetodoSoap().getMiMetodo(parametro1, parametro2). getMiMetodo().toString());
podrias dar un ejemplo?
otra pregunta: si este ejemplo tambien serviria para autoidentificarse en
sitios https\\
el primero es una clase en java, el segundo lo que se ejecuta al hacer clic en un jButton e instancia la clase del codigo 1, y el tercer es el ejemplo en visual basic.net
wwwwwwwwowwwwwwwwwww muchas gracias !!!
jiji
oie una pregunta acerca del segundo codigo es un metodo dentro de la misma clase? o es otra clase de java?? en netbeans??
y el tercer codigo es V.B
como y donde lo implemento?? perdon
de vdd espero me puedas ayudar!!
pero no se mucho y de esto depende mi cal