2010-03-12 29 views
1

我试图通过包含超过542个字符的HTTPService发送表单字段时收到一个FaultEvent。Flex HttpService POST限于每个表单字段543个字节?

初始化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网站相同的域和端口。

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

在此先感谢。

+0

我可以提供的是,这是不同于Flex的问题,我定期在一个字段中发布500kb,有时不超过2MB没有任何问题。 – invertedSpear 2010-03-12 19:30:43

+0

你可以发布一个代码片段作为这个线程的解决方案吗?我可能会监督一些事情,你的代码可以提供一些有价值的提示......谢谢 – motto 2010-03-12 21:21:25

回答

0

我认为这可能是我发送的数据有问题。我现在将数据编码为Base64,并且可以发送大块数据而没有问题。

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