Mostrando entradas con la etiqueta ASP. Classic. Mostrar todas las entradas
Mostrando entradas con la etiqueta ASP. Classic. Mostrar todas las entradas

jueves, 30 de julio de 2020

ASP Classic Ver todas variables de servidor


For Each var  In Request.ServerVariables
   Response.Write var  & " = " & Request.ServerVariables(var) 
Next

viernes, 16 de agosto de 2019

ASP. Classic mostrar datos de un RecorSet

Function MuestraRecorSet(objRS)
 'Vamos al primer registro
 objRS.MoveFirst 
 'nombres de los campos como cabecera de la tabla 
 response.write "" 
 for i = 0 to objRS.fields.Count - 1 
    response.write "" 
 next 
 response.write "" 
 
 'ahora, para cada registro 
 Do while not objRS.EOF 
  response.write "" 
    'muestro todos los campos que tiene 
  for i = 0 to objRS.fields.Count - 1 
     response.write "" 
  next 
  response.write "" 
  objRS.movenext 
 loop 
 response.write "
" response.write objRS.fields(i).name response.write "
" & objRS.fields(i) & "
" response.end End Function

ASP. Classic convertir respuesta XML (DataSet) de un webServices a Recorset

Function ConvierteXmlToRecorset(objXML, ByRef objRS)
  
 Dim xmlNodo 
 Dim Columna 
 Dim x
 
    Set objRS = Server.CreateObject("ADODB.Recordset")
 objRS.CursorType = adOpenDynamic 
 Set objLst = objXML.getElementsByTagName("Table")
 if (objLst.length = 0) then
  Set objLst = objXML.getElementsByTagName("Table1")
 end if
 SizeofObject = objLst.length-1

 if SizeofObject >= 0 then
  'Creamos las columnas
  For each elem in objLst
   set childNodes = elem.childNodes
   for each node in childNodes
    objRS.fields.append  node.nodeName, 201, 255
   next
   exit for
  Next
  
  'Añadimos los datos 
  objRS.Open

  For z=0 to objLst.length -1
      
   set childNodes = objLst(z).childNodes
   x = 0
   objRS.Addnew
   for each node in childNodes
    objRS.Fields(x) =  node.text
    x = x +1
   next
   objRS.Update
  Next
  
  'Lo Dejamos apuntado al primer registro
  objRS.MoveFirst 
 end if
 
 'Devolvemos el recorset
 ConvierteXmlToRecorset = objRS
 
End Function

miércoles, 31 de julio de 2019

ASP. Classic obtener datos de un servicio web


Introducción
Esta puede ser de utilidad para todo aquel que puede tener la necesidad de consumir un servicio web y su sitio web este utilizando esta tecnología de Microsoft que aunque antigua se sigue utilizando en muchos sitios web de hoy en día y no cuenta con todas las ayudas de nuevas tecnologías o entornos que hacen que esta acción se mucho más cómoda y sencilla.
Antes de comenzar los que necesitaremos.

Requisitos:
SO: Windows
Servidor web: IIS 6.0
Visual Studio 2003 .NET framework 1.1

1º) Crear servicio web.
Lo primero de todo vamos comenzar creado nuestro servicio web de prueba, que simplemente tendrá como funcionalidad que le pasamos una cadena y esta sea devuelta por nuestro webServices en mayúsculas. Para ello alimentaremos a nuestro servicio web con los siguientes parámetros:

Parámetro 1: Cadena (Cadena con el texto que vamos a convertir en mayúscula)


Definimos nuestro método que lo llamaremos “getUpper”.

Código del método de nuestro servicio web.

using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Web;
using System.Web.Services;

namespace PruebaWS
{
 /// 
 /// Summary description for Service1.
 /// 
 public class Service1 : System.Web.Services.WebService
 {
  public Service1()
  {
   //CODEGEN: This call is required by the ASP.NET Web Services Designer
   InitializeComponent();
  }

  #region Component Designer generated code
  
  //Required by the Web Services Designer 
  private IContainer components = null;
    
  /// 
  /// Required method for Designer support - do not modify
  /// the contents of this method with the code editor.
  /// 
  private void InitializeComponent()
  {
  }

  /// 
  /// Clean up any resources being used.
  /// 
  protected override void Dispose( bool disposing )
  {
   if(disposing && components != null)
   {
    components.Dispose();
   }
   base.Dispose(disposing);  
  }
  
  #endregion


  [WebMethod]
  public string getUpper(string cadena)
  {
   return cadena.ToUpper();
  }
 }
}



Y arrancamos nuestro servicio web.



2º) Crear aplicación ASP. Classic.

Archivo: "Includes\clsWsServices.asp"


<%
Class clsWsServices

Function InvokeWebService (strSoap, strSOAPAction, strURL, ByRef xmlResponse)
    '************************************************************************
    ' Descripción: Invoca un WebService y obtiene su resultado.
    '
    ' Inputs:
    '    strSoap:    Petición HTTP a enviar, en formato SOAP. Contiene la    
    '                llamada al WebMethod y sus parámetros 
    '                correspondientes.
    '    strSOAPAction:    Namespace y nombre del WebMethod a utilizar.
    '    strURL:        URL del WebService.
    '
    ' Returns:
    '    La función retornará False si ha fallado la ejecución del WebService o si
    '    ha habido error en la comunicación con el servidor remoto. De lo contrario
    '    retornará True.
    '
    '    xmlResponse:    Respuesta obtenida desde el WebService, parseada 
    '                por el MSXML.
    '************************************************************************

    Dim xmlhttp
    Dim blnSuccess

        'Creamos el objeto ServerXMLHTTP
        Set xmlhttp = Server.CreateObject("Msxml2.ServerXMLHTTP")

        'Abrimos la conexión con el método POST, ya que estamos enviando una
        'petición.
        xmlhttp.Open "POST", strURL

        'Agregamos encabezados HTTP requeridos por el WebService
        xmlhttp.setRequestHeader "Man", "POST " & strURL & " HTTP/1.1"
        xmlhttp.setRequestHeader "Content-Type", "text/xml; charset=utf-8"
        xmlhttp.setRequestHeader "SOAPAction", strSOAPAction

        'El SOAPAction es importante ya que el WebService lo utilizará para
        'verificar qué WebMethod estamos usando en la operación.

        'Enviamos la petición
        xmlhttp.send(strSoap)

        'Verificamos el estado de la comunicación
        If xmlhttp.Status = 200 Then

            'El código 200 implica que la comunicación se puedo establecer y que
            'el WebService se ejecutó con éxito.
            blnSuccess = True
        Else

            'Si el código es distinto de 200, la comunicación falló o el
            'WebService provocó un Error.
            blnSuccess = False
        End If
  
        'Obtenemos la respuesta del servidor remoto, parseada por el MSXML.
        'Set xmlResponse = xmlhttp.responseXML
  Set xmlResponse = xmlhttp

        InvokeWebService = blnSuccess

        'Destruimos el objeto, acá no hay GarbageCollector ;)
        Set xmlhttp = Nothing
End Function

'''''''''''''''''''''''''''''''''''''''''''''''''
''''''''''  METODOS DEL WEBSERVICES    ''''''''''  
'''''''''''''''''''''''''''''''''''''''''''''''''
Public Function getUpper(cadena)

 strSoap = "" & _
 "" & _
   "" & _
   "" & _
   "" & _
  "" & _
    ""& cadena & " " & _
  "" & _
   "" & _
 ""

 'Una vez que tenemos el mensaje SOAP armado, procedemos 
 'a invocar al Web Service. Para hacerlo, necesitamos el
 'SOAPAction, el cual se forma con el namespace del Web Service / el nombre del WebMethod:
 strSOAPAction = "http://tempuri.org/getUpper"
 'Ahora sí estamos listos para llamar a la función InvokeWebService(). 
 'Conociendo la estructura del XML de respuesta (SOAP Response), 
 'obtenemos el resultado de la ejecución:

 'Dimensionamos la variable donde obtendremos la respuesta del WebService 
 Dim xmlResponse
 Dim rs

 'Realizamos la llamada a la función InvokeWebService(), brindándole los parámetros correspondientes
 If InvokeWebService (strSoap, strSOAPAction, RUTA_WS, xmlResponse) Then  
  getUpper = xmlResponse.responseXML.documentElement.selectSingleNode("soap:Body/getUpperResponse").text 
 Else
  'Pero si hubo algún problema, le informamos al usuario
  getUpper  = "Error: No se ha podido conectar con el servicio web."
 End If

 'Liberamos la memoria del objeto xmlResponse 
 Set xmlResponse = Nothing
 
End Function

End Class
%>


Archivo: "Includes\constantes.asp"
<%
Const RUTA_WS = "http://localhost/PruebaWS/Service1.asmx"
%>


Archivo: "Includes\callWs.asp"
<%
'Objeto WebServices
Dim PruebaWs
Set PruebaWs = New clsWsServices 


Dim cadena
Dim resultado

'Obtenemos el parametro
cadena = Request.QueryString("pCadena")

'LLamada Servicio WebServices
resultado = PruebaWs.getUpper(cadena)

'Volvemos a la pagina principal
Response.redirect "../Prueba.asp?pResult=" & resultado  & "&pCadena=" &cadena

%>


Archivo: "Prueba.asp"

PRUEBA - WS

Cadena: " > Result: ">

Web Pruebas. (Prueba.asp)