Flex HttpService POST限制为每个表单字段543字节?

时间:2010-03-12 19:19:16

标签: asp.net flex actionscript post httpservice

尝试通过HTTPService发送包含超过542个字符的表单字段时,我收到了FaultEvent。

初始化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);

发送请求:

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

我似乎也能够创建许多表单字段(长度为542),因此它不是请求本身的限制,而是表单字段的限制:

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

接收方是同一域和端口上的ASP.NET 4站点。

我希望有人已经遇到过类似的限制,或者对如何进一步追踪这个问题有一些一般的建议。

提前致谢。

1 个答案:

答案 0 :(得分:0)

我认为我发送的数据可能存在问题。我现在正在将数据编码为 Base64 ,并且可以毫无问题地发送大块数据。

base64 = new Base64Encoder();
base64.encodeUTFBytes(text);
params['stacktrace'] = base64.flush();