软硬度:HTTP请求错误#2032(Flex: HTTP request error #2032)

2019-07-20 00:53发布

在Flex 3应用程序我使用HTTPService类,使对服务器的请求:

var http:HTTPService = new HTTPService();
http.method = 'POST';
http.url = hostUrl;
http.resultFormat = 'e4x';
http.addEventListener(ResultEvent.RESULT, ...);
http.addEventListener(FaultEvent.FAULT, ...);
http.send(params);

该应用程序有彗星的架构。 因此,它使长时间运行的请求。 在等待这个请求的响应,其他请求可以同时做。

该应用程序适用于大多数情况下。 但有时有些客户得到HTTP请求错误执行长时间运行的要求:

faultCode:Server.Error.Request
faultString:'HTTP request error'
faultDetail:'Error: [IOErrorEvent type="ioError" bubbles=false cancelable=false eventPhase=2 text="Error #2032"]. URL: http://example.com/ws'

我认为这取决于用户的浏览器。

有任何想法吗?

Answer 1:

我经历了同样的问题,当我在HttpRequest的发送较长(3-4K!)参数。 当我发小的,它的工作(不刷新,刷新或任何东西)。 我不知道是否有在客户端或者你可以发送,但肯定这会导致问题的参数长度的Web服务器端的限制。
URL限制,可能会导致它



Answer 2:

这个错误似乎很普通,我会建议试图收集更多的信息,分享其关于这一问题。

  • 这篇文章将出现类似于你的情况。
  • 这篇文章可以帮助你发现这将是有帮助的更多调试信息。
  • 哪些客户会受到影响?
  • 您可以捕获HTTP状态代码或使用所发送的流量查尔斯 ,Wireshark的或类似的?


Answer 3:

尝试监听请求的HTTP状态,使用flash.events.HTTPStatusEvent.HTTP_STATUS
这可能给你什么地方出了错一些更多的信息。



Answer 4:

我要打开另一个问题上基本上是相同的话题,但我图二悬而未决的问题是有过之而无不及1。

我从我们有一个Flex应用程序的一些用户类似的间歇性问题,但也有一些稍微不同的症状。 的信息,我可以提供全范围是:

  1. 它发生在短(10ms)的请求以及。
  2. 这似乎是随机出现。
  3. 连接是通过SSL。
  4. 它仅出现IE的用户,而不是使用的是Firefox用户。
  5. 一旦发生,用户告诉我,他们需要关闭IE浏览器并重新启动它(一些用户说,他们需要重新启动,但我认为这不仅仅是一个IE浏览器重新启动的可能性较小)。 这似乎需要几分钟自行复位。
  6. 这似乎并不影响用户的互联网连接 - 他们可以继续使用其他IE窗口的其余部分。
  7. 一旦发生,看来Flex应用程序中没有的HTTPService请求将正常工作。
  8. 它发生(显然)仅适用于用户的一小部分。 最初,它似乎是由于从主服务器的物理距离,但是这似乎不再是必然的情况(尽管它可能是连接质量)。
  9. 我不是对用户运行的是什么的Adobe Flash Player版本清楚。 守则与Adobe Flex 3.4(Linux)的建
  10. 该应用程序广泛的请求,许多平行的,虽然我已经无法重现该问题。
  11. 用户也建议他们,几分钟后回来了到应用程序后,会出现此错误。
  12. 似乎有在服务器日志中没有相关的服务器端请求进入,这表明该请求不会到达服务器(可能永远不会让客户端)。
  13. 服务器响应与相关缓存头所有请求把IE缓存。

目前的解决方法我们是要求用户运行在Firefox中的应用。

错误的完全转储:

HTTP Status Code: null
Fault Code: Server.Error.Request
Fault Error ID: null
Fault Detail: Error: [IOErrorEvent type="ioError" bubbles=false cancelable=false eventPhase=2 text="Error #2032"]. URL: https://my.server/url
Fault String: HTTP request error
Fault Name: Error
Fault Message: faultCode:Server.Error.Request faultString:'HTTP request error' faultDetail:'Error: [IOErrorEvent type="ioError" bubbles=false cancelable=false eventPhase=2 text="Error #2032"]. URL: https://my.server/url'
Root Cause: [IOErrorEvent type="ioError" bubbles=false cancelable=false eventPhase=2 text="Error #2032"]

很多人都提到的错误2032,有些甚至提的间歇性错误只在IE下,但目前还没有解决方案的提及。 如果我找到一个,我会在这里更新我的职务。

更新

交谈,因为这发生用户后,我们发现以下几点:

  1. 用户可以在IE中打开一个新标签,并加载相同的Flex应用程序了罚款 - 所以没有网络连接问题。
  2. 用户可以在与发生错误的Flex应用程序选项卡,加载了google.com - 所以似乎与该特定标签中没有任何连接问题。
  3. 用户可以将地址从标签用破碎的应用程序复制到另一个选项卡,Flex应用程序将加载。
  4. 用户可以,在Flex应用程序打破了标签加载google.com后,复制的Flex应用程序URL一遍,并立即寻求问题。

看来,我的具体应用,我的Flex应用程序管理,以打破Flash插件/ VM到休息后,在URL没有进一步的请求被允许的程度。

我这样完全被这个我在提示用户的角度使用Firefox,或在空气包包装的应用难倒。



Answer 5:

应用 - 我在这里,但有一个Flash(Flex的4.1 SDK网站)多了几分同样的问题。 尝试我们缩小解决方案的一个巨大的品种后,我们终于想出了一个相当可靠地适用于所有系统,包括新安装的机器。

。 在应用程序的根目录(或平台)添加全局事件侦听器,在柔性预初始化阶段。

IOErrorEvent.IO_ERROR
IOErrorEvent.NETWORK_ERROR
HTTPStatusEvent.HTTP_STATUS
ErrorEvent.ERROR
SecurityErrorEvent.SECURITY_ERROR

如果错误被毫无遗漏- event.preventDefault();

B中 。 加上在App用于以下错误每装载机事件监听器:

IOErrorEvent.IO_ERROR
SecurityErrorEvent.SECURITY_ERROR
HTTPStatusEvent.HTTP_STATUS

*尝试恢复,如回落到外部接口调用...

温度 。 从斌-release文件夹放在一起的所有SWZ文件在您使用提供您的应用程序在服务器上的相同路径的SWF文件。 在我的情况下,这些都是需要的文件:

sparkskins_4.5.1.21328.swz
spark_4.5.1.21328.swz
textLayout_2.0.0.232.swz
rpc_4.5.1.21328.swz
osmf_1.0.0.16316.swz
framework_4.5.1.21328.swz

*发现这个我使用Chrome开发者控制台看到的网页上出现错误时,发现404的链条,当应用程序试图下载这些文件。

d。 有一个正确配置的crossdomain.xml策略文件,其中包括允许HTTP请求的XML标记。

<allow-http-request-headers-from domain="*" headers="*"/>

需要你的具体情况更换*。

干杯



Answer 6:

听起来像是你可能有更多的连接走出去,然后浏览器支持。 你知不知道到底有多少开放连接在错误的时间存在吗?

不同的浏览器允许同时打开的连接不同的号码。 IE 6,7,8都允许不同的量: http://support.microsoft.com/kb/282402

火狐: http://www.speedguide.net/faq_in_q.php?qid=231



Answer 7:

我已经在我的AIR应用程序发生这个确切的问题。 我终于意识到,我不小心设置urlrequest.idleTimeout为10。这实际上超时是毫秒,我的网络服务器是本地的,所以如果我没有发送参数(没有GET或POST),以我的本地服务器时,它会工作。 每当我发送的任何参数与过程的要求,因为我的脚本所花的时间超过10ms运行和返回数据,它会失败一起。

您可能要注意减速加载脚本。 您可以通过只迫使一些静态输出调试,然后再从停止执行该页面。 在我的PHP页面,我把:

<?php
echo "hello=hi";
die();
?>

此外,确保沙盒限制内进行调试。 我使用的是自签名的SSL证书,并试图连接到我的本地测试Web服务器时,有很多的警告。

希望帮助!



文章来源: Flex: HTTP request error #2032