Flex HttpService POST ограничен 543 байтами на поле формы? - PullRequest
1 голос
/ 12 марта 2010

Я получаю сообщение FaultEvent при попытке отправить через форму HTTPService поля формы, содержащие более 542 символов.

Инициализация службы Http:

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 голосов
/ 14 марта 2010

Я думаю, что это может быть проблема с данными, которые я отправлял. Сейчас я кодирую данные в Base64 и могу без проблем отправлять большие куски данных.

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