1

542文字を超える文字を含むフォームフィールドをHTTPService経由で送信しようとすると、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.NET4サイトです。

誰かがすでに同様の制限に遭遇したか、この問題をさらに追跡する方法についていくつかの一般的なアドバイスを持っていることを願っています。

前もって感謝します。

4

1 に答える 1

0

送信したデータに問題があったのではないかと思います。現在、データをBase64にエンコードしており、大量のデータを問題なく送信できます。

base64 = new Base64Encoder();
base64.encodeUTFBytes(text);
params['stacktrace'] = base64.flush();
于 2010-03-13T21:25:27.797 に答える