El error de estatus que recibo es el 401: El código de error HTTP 401 indica que la solicitud no ha sido autorizada. Este código se devuelve cuando el servidor requiere autenticación y la solicitud no incluye o proporciona credenciales válidas.
El errorCode que recibo es el 204: Código de error 204 generalmente se refiere a la respuesta exitosa sin contenido en el protocolo HTTP.
El usuario y la clave son correctos ya que los hemos probado en VSCode y nos ha funcionado correctamente.
El método que debe de usar es POST y los parámetros que recibe lo pongo en la captura de pantalla.
AL final me base en el script de vERP para hacer funcionar la llamada. Mediante un manejador le paso los parámetros correspondientes al script y el script ya se encarga de hacer la llamada correctamente. Yo lo estaba intentando hacer por mi cuenta pero en vERP esta ya hecho. Subo el archivo en formato PDF para el que lo quiera usar. Este texto habria que meterlo en un archivo script. Api.pdf (31,3 KB)
Seguro que sirve a otros programadores.
Lo pongo aquí para facilitar el copia y pega.
// Importamos la clase XMLHttpRequest
importClass("XMLHttpRequest");
importClass("VFile");
var url = theRoot.varToString("URL");
var met = theRoot.varToString("MET");
var hea = theRoot.varToString("HEA");
var par = theRoot.varToString("PAR");
var bod = theRoot.varToString("BOD");
var cer = theRoot.varToString("CER");
var key = theRoot.varToString("KEY");
var clv = theRoot.varToString("CLV");
var pre = theRoot.varToString("PRE");
var err = 0;
// Declaramos el objeto XMLHttpRequest a utilizar
var xhr = new XMLHttpRequest();
if ("" !== cer) {
xhr.withCredentials = true;
xhr.setClientCertificate(cer, key, clv);
}
// Si tiene parametros, los agregamos a la URL
if ("" !== par) {
try {
var oJson = JSON.parse(par);
var params = [];
for (var i in oJson) {
params.push(i + "=" + oJson[i]);
}
url += "?" + params.join("&");
} catch (e) {
alert("El JSON de los parametros esta mal formateado, debe verificarlo");
err = 1;
}
}
// Continuamos
if (0 === err) {
// Seteamos la conexion
xhr.open(met, url, false);
// Si tiene headers, los agregamos
if ("" !== hea) {
try {
var oJson = JSON.parse(hea);
var params = [];
for (var i in oJson) {
xhr.setRequestHeader(i, oJson[i]);
}
} catch (e) {
alert("El JSON de los headers esta mal formateado, debe verificarlo");
err = 1;
}
}
//Continuamos
if (0 === err) {
//Evaluamos si hay un pre-script para ejecutarlo
if ("" !== pre) {
eval(pre);
}
//Enviamos la consulta
xhr.send(bod);
//Esperamos a que responda
while (4 !== xhr.readyState) {
xhr.processEvents();
}
//Procesamos el retorno
theRoot.setVar("STA", xhr.status.toString() || "");
theRoot.setVar("STA_TXT", xhr.statusText || "");
theRoot.setVar("RES_TXT", xhr.responseText || "");
theRoot.setVar("RES_TYP", xhr.responseType || "");
theRoot.setVar("RES_HEA", xhr.getAllResponseHeaders());
}
}