Pregunta

Me estoy haciendo un FaultEvent al intentar enviar campos de formulario a través HTTPService que contiene más de 542 caracteres.

La inicialización de la HttpService:

httpServ = new HTTPService();
httpServ.method = 'POST';
httpServ.url = ENDPOINT_URL; //http://localhost:3001/ReportError.aspx
httpServ.resultFormat = HTTPService.RESULT_FORMAT_TEXT;
httpServ.contentType = HTTPService.CONTENT_TYPE_FORM;
httpServ.addEventListener(ResultEvent.RESULT, OnErrorSent);
httpServ.addEventListener(FaultEvent.FAULT, OnFault);

El envío de la solicitud:

var params:Object = {};         
//params["stack"] = e.stackTrace.slice(0, 542); //length 542 = works
//params["stack2"] = e.stackTrace.slice(1, 543); //length 542 = works (just to show that it's not about the content itself)
params["stack3"] = e.stackTrace.slice(0, 543); //length 543 = fails

También parecen ser capaces de crear muchos campos de formulario (con 542 de longitud), de modo que no es un límite de la solicitud en sí, sino del campo de formulario:

var params:Object = {};         
params["stack"] = e.stackTrace.slice(0, 542); //length 542
params["stack2"] = e.stackTrace.slice(1, 543); //length 542
params["stack3"] = e.stackTrace.slice(2, 544); //length 542
// Length > 1600 chars

La parte receptora es un sitio ASP.NET 4 en el mismo dominio y el puerto.

Espero que alguien ya se encontró con un restricciones similares o tiene algunos consejos generales sobre cómo rastrear este problema aún más.

Gracias de antemano.

¿Fue útil?

Solución

Creo que podría haber sido un problema con los datos que yo estaba enviando. Ahora estoy codificar los datos a Base 64 y puede enviar grandes cantidades de datos sin problemas.

base64 = new Base64Encoder();
base64.encodeUTFBytes(text);
params['stacktrace'] = base64.flush();
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top