Flash上​​传请求通过HTTPS自动重试407错误

时间:2013-08-14 01:06:15

标签: flash authentication upload

我们在ASP.NET应用程序中使用了一个flash uploader,它适用于大多数客户。但是对于某些在其组织中使用代理服务器设置的人来说,上载会间歇性地失败,从而导致崩在调查问题时,我发现这是由于代理服务器发起的“需要407认证”请求。当我们尝试切换在HTTPS下运行的整个网站时,这个问题似乎得到了解决,但在整个应用程序中启动了其他500个错误。作为临时修复,我仅为上传组件启用了HTTPS,使网站在HTTP下运行。这似乎现在解决了这个问题。

但是,由于我期待永久修复,我正在考虑在我的Flash代码中处理代理异常(407)并尝试使用HTTPS调用重新发出它(不确定是否允许这样做)。当我尝试处理HTTPStatusEvent时,我使用fiddler正确地获得了异常,但是没有进一步的请求,尽管我通过HTTPS强制上传请求。请在下面找到我正在做的代码示例(ActionScript Flex 3)

  

_file.addEventListener(HTTPStatusEvent.HTTP_STATUS,OnHttpError);

     

私有函数OnHttpError(event:HTTPStatusEvent):void {               if(event.status == 407){                   上传(真);               }               其他{                   HandleExceptions(“Http Error:”,event.status,“”);               }               this.dispatchEvent(事件);           }   public function Upload(enableHttps:Boolean = false):void {               _uploading = true;               _bytesUploaded = 0;

        var uploadURLTemp:String = _uploadUrl;
        if(enableHttps==true){
            uploadURLTemp = uploadURLTemp.replace("http://","https://");

        }
        _file.upload(new URLRequest(uploadURLTemp));


    }

_file对象是FileReference对象,_uploadURL是服务器中的上传处理程序URL。我不确定我是否被允许这样做或者是否有更好的方法来处理这个问题。

非常感谢任何想法或想法

此致

谢林

1 个答案:

答案 0 :(得分:0)

就您遇到的错误而言,我同意这听起来像是一个后端问题,而不是Flash问题。

一般来说,在Flash中执行HTTPS调用最困难的部分是设置和加载crossdomain.xml策略。如果您正在进行的这些https调用正在运行,那么我假设您已正确配置了所有内容。

但是,如果你还没有,可以考虑以下几点:

  • 通过HTTP加载.SWF时,使用HTTPS联系服务器可能需要crossdomain.xml
  • 如果您的安全内容托管在子域(例如secure.mywebsite.com)上,则SWF可能没有适当的权限(缺少或错误配置的crossdomain.xml)以访问www.mywebsite。反之亦然。
  

但是,由于我期待永久修复,我正在考虑在我的Flash代码中处理代理异常(407)并尝试使用HTTPS调用重新发出它(不确定是否允许这样做)。

只要SWF加载了有效且配置正确的crossdomain.xml文件,您就可以调用或重新调用http,https甚至套接字连接。

我只是想知道,由于HTTP似乎对您不稳定,在您解决代理问题之前,可能更容易使用https。