Buen dia,
Estoy desarrollando Web Services con la clase MSXML2.XMLHTTP y para saber el valor de la respuesta del servidor estoy utilizando el metodo Status pero me esta marcando el error: "(DOS Error -2147352567) WINOLE/1007 Error no especificado
(0x80004005): msxml3.dll"
Cual sera el problema?
Les envio parte del codigo:
oHttp:=CreateObject("MSXML2.XMLHTTP")
oHttp:Open("POST", "https://exchange-staging.motiveintegrat ... mc-5-1/otc")
oHttp:SetRequestHeader("x-motive-app-id", "3fb559a4-5f8a-4b40-a710-e3c110e82440")
oHttp:SetRequestHeader("x-motive-eval-type-id", "05648e56-0808-4db1-a42a-261c5ee87ce8")
oHttp:SetRequestHeader("x-motive-trigger-id", "8077")
oHttp:SetRequestHeader("Authorization", "Bearer &eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6InI1VFl6SHFoX3BPZjVWYX...")
oHttp:SetRequestHeader("Content-Type", "text/xml; charset=utf-8")
oHttp:SetRequestHeader("Host", "b2dgwqa.ford.com")
oHttp:SetRequestHeader("Content-Length", "11366")
oHttp:SetRequestHeader("Expect", "100-continue")
oHttp:Send( cSoap )
IF ( oHttp:status == 200 )
MsgInfo(oHttp:ResponseText)
ELSE
MsgInfo(oHttp:statusText )
ENDIF
Manejo de WebServices
- noe aburto
- Posts: 420
- Joined: Wed Nov 26, 2008 6:33 pm
- Location: Morelia, Mich. Mexico.
Re: Manejo de WebServices
Buenos dias,
Acabo de terminar la conexion con un Web service y he utilizado
oApi:oHttp:= CreateObject( 'MSXML2.ServerXMLHTTP.6.0' )
Un saludo
Acabo de terminar la conexion con un Web service y he utilizado
oApi:oHttp:= CreateObject( 'MSXML2.ServerXMLHTTP.6.0' )
Un saludo
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Re: Manejo de WebServices
Paco,
Sería estupendo si pudieses mostrar el código de como lo has hecho, ó un ejemplo, para ayudar a otros compañeros
Gracias!
Sería estupendo si pudieses mostrar el código de como lo has hecho, ó un ejemplo, para ayudar a otros compañeros
Gracias!
Re: Manejo de WebServices
Buenas noches
Como me solicita Antonio, pongo parte del código desarrollado por si sirve de ayuda para alguien.
Un saludo para todos
Como me solicita Antonio, pongo parte del código desarrollado por si sirve de ayuda para alguien.
Code: Select all
// En oApi:cUrl guardo la Url principal de la webservice
// en las llamadas a las diferentes opciones la completo con los parametros requeridos
function api_prv()
local oApi:=ApiPrv()
oApi:oHttp:= CreateObject( 'MSXML2.ServerXMLHTTP.6.0' )
define dialog oApi:odlg resource "API_PRV" of oApi:oVentana
//Definición de la pantalla de trabajo y los botones para hacer las llamadas a las diferentes opciones que se nos ofrece
activate dialog oApi:odlg nowait valid oApi:lSalir on init inicia_Api(oApi)
return nil
*-------------------------------------------------------------------------------------------------------------
static function inicia_Api(oApi)
MsgRun( "Accediendo a API ...",,{ || Accede_VPAPI(oApi)} )
if oApi:vToken <> ""
MsgRun( "Leyendo Campañas Activas ...",,{ || Campanas_VPAPI(oApi,ctod("01/01/2020"),ctod("31/12/2099"))} )
end if
return nil
*----------------------------------------------------------------------------------------------------
// Llamada al Login. Nos devuelvee el token que será el que sirva para la autorizacion de las diferentes opciones.
Procedure Accede_VPAPI(oApi)
local cUrl:=oApi:cUrl + "auth/login"
local aResult:= ""
local cXml:= "[{" + chr(34) + "username" + chr(34) + ":" + chr(34) + alltrim(oEmpresa:VPUsuario) + chr(34) + "," + chr(34) + "password" + chr(34) + ":" + chr(34) + alltrim(oEmpresa:VPPass) + chr(34) + "}]"
oApi:oHttp:Open( "POST" , cUrl, .F. )
oApi:oHttp:setRequestHeader("Content-Type","application/json")
oApi:oHttp:Send(&cXml)
if oApi:oHttp:status <> 200
msginfo("Usuario o Contraseña Incorrectos")
else
vRet:=fCrea_array(alltrim(oApi:oHttp:ResponseText))
for x:=1 to len(vRet)
if upper(vRet[x,1])="TOKEN"
oApi:vToken:=vRet[x,2]
end if
next x
end if
return
*----------------------------------------------------------------------------------------------------
// Un ejemplo de llamada a las campañas de venta
Procedure Campanas_VPAPI(oApi,vDesdeFecha,vHastaFecha)
local cUrl:=oApi:cUrl + "operations"
local cXml:= ""
local vDato:="", vRet:={}, x:=0
cXml:="[{" + chr(34) + "code" + chr(34) + ":" + chr(34) + "string" + chr(34) + ","
cXml+=chr(34) + "begindate" + chr(34) + ":" + chr(34) + dtos_format(vDesdeFecha) + "T00:00:00257Z" + chr(34) + ","
cXml+=chr(34) + "enddate" + chr(34) + ":" + chr(34) + dtos_format(vHastaFecha) + "T23:59:59257Z" + chr(34) + ","
cXml+=chr(34) + "status" + chr(34) + ":" + chr(34) + "string" + chr(34) + "}]"
oApi:oHttp:Open( "GET" , cUrl, .F. )
oApi:oHttp:setRequestHeader("Content-Type","textplain")
oApi:oHttp:setRequestHeader("Authorization", "Bearer " + oApi:vToken)
oApi:oHttp:Send(&cXml)
if oApi:oHttp:status <> 200
msginfo("Error " + allstr(oApi:oHttp:status) + " No se puede acceder a las camapañas")
else
oApi:aTbr1:={}
vDato := alltrim(oApi:oHttp:ResponseText)
vRet:=fCrea_array(vDato)
for x:=1 to len(vRet)
if upper(vRet[x,1])="CODE"
if f_fecha(vRet[x+1,2]) >= vDesdeFecha .and. f_fecha(vRet[x+2,2]) <= vHastaFecha
aadd(oApi:aTbr1,{vRet[x,2],f_fecha(vRet[x+1,2]),f_fecha(vRet[x+2,2]),vRet[x+3,2]})
end if
end if
next x
oApi:oTbr1:aArrayData := oApi:aTbr1
oApi:oTbr1:refresh()
end if
return
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
- noe aburto
- Posts: 420
- Joined: Wed Nov 26, 2008 6:33 pm
- Location: Morelia, Mich. Mexico.
Re: Manejo de WebServices
Muchas gracias, lo voy a checar y ver si me ayuda a resolver mi problema.
Noé Aburto Sánchez
Tec. Prog. de Sistemas. -Morelia, Mich. México.
fwh 20.06, Harbour 3.2.0, bcc 7.4
TsBrowse 9.0, TsButton 7.0, xEdit 6.1
naburtos@gmail.com, noeaburto67@hotmail.com
Tec. Prog. de Sistemas. -Morelia, Mich. México.
fwh 20.06, Harbour 3.2.0, bcc 7.4
TsBrowse 9.0, TsButton 7.0, xEdit 6.1
naburtos@gmail.com, noeaburto67@hotmail.com