hola a todos quisiera saber como se pude hacer una peticion para el envio de informacion a un webservice con asp, php, .net; no importa, yo lo tengo con asp, pero me manda un error de la cuenta, la verdad desconosco asp y no estoy seguro si esta bien la manera en que lo estoy haciendo, tengo otro en visual basic y ese si funciona bien, el problema es que no lo puedo mandar llamar porque trabajo sobre web.
Este es el codigo para la peticion al webservice:
tengo un formulario con el cual envio la informacion a la pagina invoke.asp
invoke.asp
<% Option Explicit %>
<!-- #include file = "funciones.asp" -->
<%
'<--#includefile="<%=funciones.asp>"-->
Dim strSoap, strResul, strSOAPAction
Dim strRecruiterID, strDateExpires, strJobTitle
Dim strJobBody, strJobLocationID, strShowContactInfo
Dim strContactCompanyName, strContactEmailAddress, strContactPhoneNumber, strContactFaxNumber, strContactStreetAddress
Dim strContactCity, strContactState, strContactPostalCode, strContactCountry
Dim strSalaryFrom, strSalaryTo, strSalaryTime, strJobRefCode
Dim strJobTypeFullTime, strJobTypePartTime, strJobTypeContract, strJobTypePermanent
Dim strContactName, strJobCity, strJobFunctionId, strJobLevelId, strCompanyTurn, strUrlExterno
Dim codeResult
'Asignamos los datos del formulario a variables internas
strRecruiterID = Request.Form("recruiterid")
strContactName = Request.Form("contactname")
strJobCity = Request.Form("jobcity")
'Copiamos el SOAP (Request) obtenido en el asmx y reemplazamos "string" por los
'valores que ingresó el usuario.
strSoap = "<?xml version=""1.0"" encoding=""utf-8""?>" & _
"<soap:Envelope xmlns:xsi="">" & _
"<soap:Body>" & _
"<InsertJob xmlns=""servicios.occ.com.mx/JobsImp"">" & _
"<RecruiterID>'" & strRecruiterID & "'</RecruiterID>" & _
"<ContactName>'" & strContactName & "'</ContactName>" & _
"<JobCity>'" & strJobCity & "'</JobCity>" & _
"<JobFunctionId>'" & "</InsertJob>" & _
"</soap:Body>" & _
"</soap:Envelope>"
strSOAPAction = "servicios.occ.com.mx/JobsImp/InsertJob"
'Dimensionamos la variable donde obtendremos la respuesta del WebService
Dim xmlResponse
'Realizamos la llamada a la función InvokeWebService(), brindándole los parámetros correspondientes
If InvokeWebService (strSoap, strSOAPAction, "servicios.occ.com.mx/jobsimp.asmx", xmlResponse) Then
'Si el WebService se ejecutó con éxito, obtenemos la respuesta y la imprimimos
codeResult = xmlResponse.documentElement.selectSingleNode("/soap:Envelope/soap:Body/InsertJobResponse/InsertJobResult").text 'soap:Body/InsertJobResponse/InsertJobResult
Response.Write "Su nuevo código es: " & codeResult
Else
'Pero si hubo algún problema, le informamos al usuario
Response.Write = " Ha ocurrido un error! "
End If
'Liberamos la memoria del objeto xmlResponse
Set xmlResponse = Nothing
%>
funciones.asp
<%
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 "Occ", "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
InvokeWebService = blnSuccess
'Destruimos el objeto, acá no hay GarbageCollector ;)
Set xmlhttp = Nothing
End Function
%>
Ojala que alguien pueda ayudarme