ASP y WebService

19/06/2004 - 09:51 por Omar del Valle | Informe spam
Hola lista

Necesito saber como comunicar una app en asp con un servicio Web. No tengo
claro usando Post que URL debo poner para referenciar a un método del Web
Service.

Saben si existe algo desarrollado para ASP que permita manipular las
conexiones a Servicios Web sin tener que lidiar con los XML?. Me refiero a
algo como lo que se hace en .NET, donde yo puedo retornar un Dataset y
obtener un Dataset, por ejemplo, sin tener en cuenta el XML.

Salu2
Omar del Valle R.
Ciudad de la Habana - Cuba
Desarrollador Microsoft 3 Estrellas .NET

Preguntas similare

Leer las respuestas

#1 Franco Figún
18/06/2004 - 19:32 | Informe spam
Tenes que usar el XMLHTTP, un ejemplo basico sacado del capitulo 2 del libro
Professional ASP.NET Web Serices con VB.NET::

'global.asa
<SCRIPT LANGUAGE="VBScript" RUNAT="Server">
Option Explicit
Sub Application_OnStart()
Application("ConnectString") = GetAppSettings("ConnectString")
End Sub

Function GetAppSettings(key)
Dim url, xmlhttp, dom, node
url = "http://localhost/PWS/Ch2-3/AppServi...smx/"
url = url & "GetAppSettings?key=" & key
Set xmlhttp = Server.CreateObject("Microsoft.XMLHTTP")
Call xmlhttp.Open("GET", url,False)
Call xmlhttp.send
Set dom = Server.CreateObject("Microsoft.XMLDOM")
dom.Load(xmlhttp.responseBody)
Set node = dom.SelectSingleNode("//string")

If Not node Is Nothing Then
GetAppSettings = node.text
End If
End Function
</SCRIPT>

'TestAppService.asp
<%@ Language = "VBScript" %>
<HTML><HEAD><title></title>
<%
Function GetAppSettings(key)
Dim url, xmlhttp, dom, node
url = "http://localhost/PWS/Ch2-3/AppServi...smx/"
url = url & "GetAppSettings?key=" & key
Set xmlhttp = Server.CreateObject("Microsoft.XMLHTTP")
Call xmlhttp.Open("GET", url,False)
Call xmlhttp.send
Set dom = Server.CreateObject("Microsoft.XMLDOM")
dom.Load(xmlhttp.responseBody)
Set node = dom.SelectSingleNode("//string")
Response.Write(Server.HTMLEncode(xmlhttp.responseText))
If Not node is Nothing Then
GetAppSettings = node.text
End If
End Function
Dim key
Dim value

If Len(Request("Submit1")) > 0 Then
Dim xmlhttp
Dim url
Dim dom

key = Request("key")
value = GetAppSettings(key)
End If
%>
</HEAD><body>
<BR>
Application("ConnectString")= <%=Application("ConnectString") %>
<BR>
<form>
<BR>
<INPUT id="key" type="text" name="key" value="<%=key%>">=<%=value%>
<P>
<INPUT id="Submit1" type="submit" value="GetAppSetting" name="Submit1">
<BR>
</form>
<P>
</body></HTML>





FF
www.francofigun.com.ar
www.microsofties.com.ar
MSN:
UIN: 314408886
Yahoo MSN:
"Omar del Valle" wrote in message
news:uDC$
Hola lista

Necesito saber como comunicar una app en asp con un servicio Web. No tengo
claro usando Post que URL debo poner para referenciar a un método del Web
Service.

Saben si existe algo desarrollado para ASP que permita manipular las
conexiones a Servicios Web sin tener que lidiar con los XML?. Me refiero a
algo como lo que se hace en .NET, donde yo puedo retornar un Dataset y
obtener un Dataset, por ejemplo, sin tener en cuenta el XML.

Salu2
Omar del Valle R.
Ciudad de la Habana - Cuba
Desarrollador Microsoft 3 Estrellas .NET


Respuesta Responder a este mensaje
#2 Matias Iacono
18/06/2004 - 21:30 | Informe spam
Asi como te comenta Franco, creo que uno de los mejores metodos es usando el
XMLHTTP, esto debido a que no siempre el web service esta en el mismo equipo
que corren tus paginas, y dependiendo como esta programado el WS este no te
dejara usar el metodo POST.

Te copio y pego un codigo que he hecho para un control de Visual Basic en
una aplicacion real. Este usa el XMLHTTP y la cabecera SOAP para tomar los
datos:

Dim strText As String

strText = "<soap:Envelope
xmlns:xsi=""http://www.w3.org/2001/XMLSchema-in...uot;"
xmlns:xsd=""http://www.w3.org/2001/XMLSchema""
xmlns:soap=""http://schemas.xmlsoap.org/soap/env...>" & _
"<soap:Body>" & _
"<GetNonWorkingPlan xmlns=""http://tempuri.org/"">" & _
"<strPlanID>" & lngPlanID & "</strPlanID>" & _
"<strConnID>" & lngConnID & "</strConnID>" & _
"<strFilter>" & enuMyFilter & "</strFilter>" & _
"</GetNonWorkingPlan>" & _
"</soap:Body>" & _
"</soap:Envelope>"

oXMLHTTP.Open "POST", strURLPath, False
oXMLHTTP.setRequestHeader "SOAPAction",
"http://tempuri.org/GetNonWorkingPlan"
oXMLHTTP.setRequestHeader "Content-Type", "text/xml; charset=utf-8"
oXMLHTTP.send strText

Como puedes ver, lo que se hace es crear una cabecera identica a lo que el
web service te dice.

Luego, en el objeto XMLHTTP puedes obtener el resultado de todo el XML.

La diferencia a lo que te postea Franco, es que esto se esta haciendo por el
metodo SOAP del WS.

Saludos

Matias Iacono

"Franco Figún" wrote in message
news:
Tenes que usar el XMLHTTP, un ejemplo basico sacado del capitulo 2 del


libro
Professional ASP.NET Web Serices con VB.NET::

'global.asa
<SCRIPT LANGUAGE="VBScript" RUNAT="Server">
Option Explicit
Sub Application_OnStart()
Application("ConnectString") = GetAppSettings("ConnectString")
End Sub

Function GetAppSettings(key)
Dim url, xmlhttp, dom, node
url = "http://localhost/PWS/Ch2-3/AppServi...smx/"
url = url & "GetAppSettings?key=" & key
Set xmlhttp = Server.CreateObject("Microsoft.XMLHTTP")
Call xmlhttp.Open("GET", url,False)
Call xmlhttp.send
Set dom = Server.CreateObject("Microsoft.XMLDOM")
dom.Load(xmlhttp.responseBody)
Set node = dom.SelectSingleNode("//string")

If Not node Is Nothing Then
GetAppSettings = node.text
End If
End Function
</SCRIPT>

'TestAppService.asp
<%@ Language = "VBScript" %>
<HTML><HEAD><title></title>
<%
Function GetAppSettings(key)
Dim url, xmlhttp, dom, node
url = "http://localhost/PWS/Ch2-3/AppServi...smx/"
url = url & "GetAppSettings?key=" & key
Set xmlhttp = Server.CreateObject("Microsoft.XMLHTTP")
Call xmlhttp.Open("GET", url,False)
Call xmlhttp.send
Set dom = Server.CreateObject("Microsoft.XMLDOM")
dom.Load(xmlhttp.responseBody)
Set node = dom.SelectSingleNode("//string")
Response.Write(Server.HTMLEncode(xmlhttp.responseText))
If Not node is Nothing Then
GetAppSettings = node.text
End If
End Function
Dim key
Dim value

If Len(Request("Submit1")) > 0 Then
Dim xmlhttp
Dim url
Dim dom

key = Request("key")
value = GetAppSettings(key)
End If
%>
</HEAD><body>
<BR>
Application("ConnectString")= <%=Application("ConnectString") %>
<BR>
<form>
<BR>
<INPUT id="key" type="text" name="key" value="<%=key%>">=<%=value%>
<P>
<INPUT id="Submit1" type="submit" value="GetAppSetting" name="Submit1">
<BR>
</form>
<P>
</body></HTML>





FF
www.francofigun.com.ar
www.microsofties.com.ar
MSN:
UIN: 314408886
Yahoo MSN:
"Omar del Valle" wrote in message
news:uDC$
> Hola lista
>
> Necesito saber como comunicar una app en asp con un servicio Web. No


tengo
> claro usando Post que URL debo poner para referenciar a un método del


Web
> Service.
>
> Saben si existe algo desarrollado para ASP que permita manipular las
> conexiones a Servicios Web sin tener que lidiar con los XML?. Me refiero


a
> algo como lo que se hace en .NET, donde yo puedo retornar un Dataset y
> obtener un Dataset, por ejemplo, sin tener en cuenta el XML.
>
> Salu2
> Omar del Valle R.
> Ciudad de la Habana - Cuba
> Desarrollador Microsoft 3 Estrellas .NET
>
>


Respuesta Responder a este mensaje
#3 Jhonny Vargas P.
18/06/2004 - 23:09 | Informe spam
Solo una cosa...

Tuve algunos problemas en utilizar XMLHTTP con algunas páginas (y en algunos
momentos, no era siempre), en su defecto utilicé SERVERXMLHTTP y funcionó
perfectamente todas las llamadas realizadas. Es lo mismo en todo caso...
pero te recomiendo la señalada.

Saludos,
Jhonny Vargas P. [MVP]
Santiago de Chile




"Omar del Valle" escribió en el mensaje
news:uD$
Gracias a los dos... ya me queda más claro..

Salu2
Omar del Valle R.
Ciudad de la Habana - Cuba
Desarrollador Microsoft 3 Estrellas .NET
"Matias Iacono" wrote in message
news:
> Asi como te comenta Franco, creo que uno de los mejores metodos es


usando
el
> XMLHTTP, esto debido a que no siempre el web service esta en el mismo
equipo
> que corren tus paginas, y dependiendo como esta programado el WS este no
te
> dejara usar el metodo POST.
>
> Te copio y pego un codigo que he hecho para un control de Visual Basic


en
> una aplicacion real. Este usa el XMLHTTP y la cabecera SOAP para tomar


los
> datos:
>
> Dim strText As String
>
> strText = "<soap:Envelope
> xmlns:xsi=""http://www.w3.org/2001/XMLSchema-in...uot;"
> xmlns:xsd=""http://www.w3.org/2001/XMLSchema""
> xmlns:soap=""http://schemas.xmlsoap.org/soap/env...>" & _
> "<soap:Body>" & _
> "<GetNonWorkingPlan xmlns=""http://tempuri.org/"">" & _
> "<strPlanID>" & lngPlanID & "</strPlanID>" & _
> "<strConnID>" & lngConnID & "</strConnID>" & _
> "<strFilter>" & enuMyFilter & "</strFilter>" & _
> "</GetNonWorkingPlan>" & _
> "</soap:Body>" & _
> "</soap:Envelope>"
>
> oXMLHTTP.Open "POST", strURLPath, False
> oXMLHTTP.setRequestHeader "SOAPAction",
> "http://tempuri.org/GetNonWorkingPlan"
> oXMLHTTP.setRequestHeader "Content-Type", "text/xml; charset=utf-8"
> oXMLHTTP.send strText
>
> Como puedes ver, lo que se hace es crear una cabecera identica a lo que


el
> web service te dice.
>
> Luego, en el objeto XMLHTTP puedes obtener el resultado de todo el XML.
>
> La diferencia a lo que te postea Franco, es que esto se esta haciendo


por
el
> metodo SOAP del WS.
>
> Saludos
>
> Matias Iacono
>
> "Franco Figún" wrote in message
> news:
> > Tenes que usar el XMLHTTP, un ejemplo basico sacado del capitulo 2 del
> libro
> > Professional ASP.NET Web Serices con VB.NET::
> >
> > 'global.asa
> > <SCRIPT LANGUAGE="VBScript" RUNAT="Server">
> > Option Explicit
> > Sub Application_OnStart()
> > Application("ConnectString") = GetAppSettings("ConnectString")
> > End Sub
> >
> > Function GetAppSettings(key)
> > Dim url, xmlhttp, dom, node
> > url = "http://localhost/PWS/Ch2-3/AppServi...smx/"
> > url = url & "GetAppSettings?key=" & key
> > Set xmlhttp = Server.CreateObject("Microsoft.XMLHTTP")
> > Call xmlhttp.Open("GET", url,False)
> > Call xmlhttp.send
> > Set dom = Server.CreateObject("Microsoft.XMLDOM")
> > dom.Load(xmlhttp.responseBody)
> > Set node = dom.SelectSingleNode("//string")
> >
> > If Not node Is Nothing Then
> > GetAppSettings = node.text
> > End If
> > End Function
> > </SCRIPT>
> >
> > 'TestAppService.asp
> > <%@ Language = "VBScript" %>
> > <HTML><HEAD><title></title>
> > <%
> > Function GetAppSettings(key)
> > Dim url, xmlhttp, dom, node
> > url = "http://localhost/PWS/Ch2-3/AppServi...smx/"
> > url = url & "GetAppSettings?key=" & key
> > Set xmlhttp = Server.CreateObject("Microsoft.XMLHTTP")
> > Call xmlhttp.Open("GET", url,False)
> > Call xmlhttp.send
> > Set dom = Server.CreateObject("Microsoft.XMLDOM")
> > dom.Load(xmlhttp.responseBody)
> > Set node = dom.SelectSingleNode("//string")
> > Response.Write(Server.HTMLEncode(xmlhttp.responseText))
> > If Not node is Nothing Then
> > GetAppSettings = node.text
> > End If
> > End Function
> > Dim key
> > Dim value
> >
> > If Len(Request("Submit1")) > 0 Then
> > Dim xmlhttp
> > Dim url
> > Dim dom
> >
> > key = Request("key")
> > value = GetAppSettings(key)
> > End If
> > %>
> > </HEAD><body>
> > <BR>
> > Application("ConnectString")= <%=Application("ConnectString") %>
> > <BR>
> > <form>
> > <BR>
> > <INPUT id="key" type="text" name="key" value="<%=key%>">=<%=value%>
> > <P>
> > <INPUT id="Submit1" type="submit" value="GetAppSetting"


name="Submit1">
> > <BR>
> > </form>
> > <P>
> > </body></HTML>
> >
> >
> >
> >
> >
> > FF
> > www.francofigun.com.ar
> > www.microsofties.com.ar
> > MSN:
> > UIN: 314408886
> > Yahoo MSN:
> > "Omar del Valle" wrote in message
> > news:uDC$
> > > Hola lista
> > >
> > > Necesito saber como comunicar una app en asp con un servicio Web. No
> tengo
> > > claro usando Post que URL debo poner para referenciar a un método


del
> Web
> > > Service.
> > >
> > > Saben si existe algo desarrollado para ASP que permita manipular las
> > > conexiones a Servicios Web sin tener que lidiar con los XML?. Me
refiero
> a
> > > algo como lo que se hace en .NET, donde yo puedo retornar un Dataset


y
> > > obtener un Dataset, por ejemplo, sin tener en cuenta el XML.
> > >
> > > Salu2
> > > Omar del Valle R.
> > > Ciudad de la Habana - Cuba
> > > Desarrollador Microsoft 3 Estrellas .NET
> > >
> > >
> >
> >
>
>


Respuesta Responder a este mensaje
#4 Omar del Valle
19/06/2004 - 13:07 | Informe spam
Gracias a los dos... ya me queda más claro..

Salu2
Omar del Valle R.
Ciudad de la Habana - Cuba
Desarrollador Microsoft 3 Estrellas .NET
"Matias Iacono" wrote in message
news:
Asi como te comenta Franco, creo que uno de los mejores metodos es usando


el
XMLHTTP, esto debido a que no siempre el web service esta en el mismo


equipo
que corren tus paginas, y dependiendo como esta programado el WS este no


te
dejara usar el metodo POST.

Te copio y pego un codigo que he hecho para un control de Visual Basic en
una aplicacion real. Este usa el XMLHTTP y la cabecera SOAP para tomar los
datos:

Dim strText As String

strText = "<soap:Envelope
xmlns:xsi=""http://www.w3.org/2001/XMLSchema-in...uot;"
xmlns:xsd=""http://www.w3.org/2001/XMLSchema""
xmlns:soap=""http://schemas.xmlsoap.org/soap/env...>" & _
"<soap:Body>" & _
"<GetNonWorkingPlan xmlns=""http://tempuri.org/"">" & _
"<strPlanID>" & lngPlanID & "</strPlanID>" & _
"<strConnID>" & lngConnID & "</strConnID>" & _
"<strFilter>" & enuMyFilter & "</strFilter>" & _
"</GetNonWorkingPlan>" & _
"</soap:Body>" & _
"</soap:Envelope>"

oXMLHTTP.Open "POST", strURLPath, False
oXMLHTTP.setRequestHeader "SOAPAction",
"http://tempuri.org/GetNonWorkingPlan"
oXMLHTTP.setRequestHeader "Content-Type", "text/xml; charset=utf-8"
oXMLHTTP.send strText

Como puedes ver, lo que se hace es crear una cabecera identica a lo que el
web service te dice.

Luego, en el objeto XMLHTTP puedes obtener el resultado de todo el XML.

La diferencia a lo que te postea Franco, es que esto se esta haciendo por


el
metodo SOAP del WS.

Saludos

Matias Iacono

"Franco Figún" wrote in message
news:
> Tenes que usar el XMLHTTP, un ejemplo basico sacado del capitulo 2 del
libro
> Professional ASP.NET Web Serices con VB.NET::
>
> 'global.asa
> <SCRIPT LANGUAGE="VBScript" RUNAT="Server">
> Option Explicit
> Sub Application_OnStart()
> Application("ConnectString") = GetAppSettings("ConnectString")
> End Sub
>
> Function GetAppSettings(key)
> Dim url, xmlhttp, dom, node
> url = "http://localhost/PWS/Ch2-3/AppServi...smx/"
> url = url & "GetAppSettings?key=" & key
> Set xmlhttp = Server.CreateObject("Microsoft.XMLHTTP")
> Call xmlhttp.Open("GET", url,False)
> Call xmlhttp.send
> Set dom = Server.CreateObject("Microsoft.XMLDOM")
> dom.Load(xmlhttp.responseBody)
> Set node = dom.SelectSingleNode("//string")
>
> If Not node Is Nothing Then
> GetAppSettings = node.text
> End If
> End Function
> </SCRIPT>
>
> 'TestAppService.asp
> <%@ Language = "VBScript" %>
> <HTML><HEAD><title></title>
> <%
> Function GetAppSettings(key)
> Dim url, xmlhttp, dom, node
> url = "http://localhost/PWS/Ch2-3/AppServi...smx/"
> url = url & "GetAppSettings?key=" & key
> Set xmlhttp = Server.CreateObject("Microsoft.XMLHTTP")
> Call xmlhttp.Open("GET", url,False)
> Call xmlhttp.send
> Set dom = Server.CreateObject("Microsoft.XMLDOM")
> dom.Load(xmlhttp.responseBody)
> Set node = dom.SelectSingleNode("//string")
> Response.Write(Server.HTMLEncode(xmlhttp.responseText))
> If Not node is Nothing Then
> GetAppSettings = node.text
> End If
> End Function
> Dim key
> Dim value
>
> If Len(Request("Submit1")) > 0 Then
> Dim xmlhttp
> Dim url
> Dim dom
>
> key = Request("key")
> value = GetAppSettings(key)
> End If
> %>
> </HEAD><body>
> <BR>
> Application("ConnectString")= <%=Application("ConnectString") %>
> <BR>
> <form>
> <BR>
> <INPUT id="key" type="text" name="key" value="<%=key%>">=<%=value%>
> <P>
> <INPUT id="Submit1" type="submit" value="GetAppSetting" name="Submit1">
> <BR>
> </form>
> <P>
> </body></HTML>
>
>
>
>
>
> FF
> www.francofigun.com.ar
> www.microsofties.com.ar
> MSN:
> UIN: 314408886
> Yahoo MSN:
> "Omar del Valle" wrote in message
> news:uDC$
> > Hola lista
> >
> > Necesito saber como comunicar una app en asp con un servicio Web. No
tengo
> > claro usando Post que URL debo poner para referenciar a un método del
Web
> > Service.
> >
> > Saben si existe algo desarrollado para ASP que permita manipular las
> > conexiones a Servicios Web sin tener que lidiar con los XML?. Me


refiero
a
> > algo como lo que se hace en .NET, donde yo puedo retornar un Dataset y
> > obtener un Dataset, por ejemplo, sin tener en cuenta el XML.
> >
> > Salu2
> > Omar del Valle R.
> > Ciudad de la Habana - Cuba
> > Desarrollador Microsoft 3 Estrellas .NET
> >
> >
>
>


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida