Estimados compañeros.
Tengo el siguiente problema, estoy tratando de conectarme a una pagina web para bajar cierto datos (no es una API Rest ni MSSOAP) y se debe enviar ciertos parámetros y un archivo JSON, alli todo bien pero cuando hago el envio via 'POST' me sale :
El problema es que no reconoce el campo metada del archivo JSON, alguien le ha sucedido esto y lo ha solucionado, adjunto el codigo:
function ConsultaRCV
local cCompras,oHttp,cUrl,cJson,cTokencResponse,cAut,oRestapi,cHtml,cArchivo
cHttp:="
https://www4.sii.cl/consdcvinternetui/services/data/facadeService/getDetalleCompra"
cToken:=Token() // me trae el Token del SII
****** Creo archivo Json a Enviar *********
cCompras:={=>}
cCompras:Metadata :={=>}
cCompras:Metadata:ConversationID := +cToken
cCompras:Metadata:namespace :="cl.sii.sdi.lob.diii.consdcv.data.api.interfaces.FacadeService/getDetalleCompra"
cCompras:Metadata:transactionId :="0"
cCompras:Metadata:Page :="null"
cCompras:Data :={=>}
cCompras:Data:RutEmisor :="76876772"
cCompras:Data:dvEmisor :="6"
cCompras:Data:ptributario :=+substr(Form_1.Text_1.Value,4,4)+substr(Form_1.Text_1.Value,1,2)
cCompras:Data:CodTipDoc:="33"
cCompras:Data:operacion:="REGISTRO"
cArchivo:=hb_MemoWrit( 'Compras.Json', hb_jsonEncode(cCompras, .T.) )
BEGIN SEQUENCE WITH {|o| break(o)}
oHttp := Win_OleCreateObject( "MSXML2.ServerXMLHTTP" )
RECOVER USING oErr
MsgStop( oErr:Description, "Error Microsoft XML Core Services (MSXML)" )
oHttp:=""
END SEQUENCE
******* Direccion WEB *******************
cUrl:="
https://www4.sii.cl/consdcvinternetui/services/data/facadeService/getDetalleCompra"
oHttp:Open( "POST", cUrl, .F.)
*************** Headers *********************************
oHttp:setRequestHeader("Referer" , "
https://www4.sii.cl/consdcvinternetui/")
oHttp:setRequestHeader( "Content-type", "application/json; charset: utf-8" )
oHttp:setRequestHeader("Accept" , "application/json, text/plain, */*")
oHttp:setRequestHeader("Content-Lenght" , "Host")
oHttp:setRequestHeader("Cookie" , "RUT_NS=76876772; DV_NS=6 ;TOKEN="+cToken+"; CSESSIONID="+cToken) //+ CRLF)
*oHttp:setRequestHeader("Cookie" , +cToken) //+ CRLF)
oHttp:Send(hb_jsonEncode(cCompras, .T.))
cResponse:=oHttp:responseText
hb_memowrit("Respuesta.html",cResponse)
oHttp:=Nil
Return (cResponse)
Saludos.