Actionscript 3 使用as3httpclientlib向HTTPS服务器发送数据时出错

Actionscript 3 使用as3httpclientlib向HTTPS服务器发送数据时出错,actionscript-3,https,client-server,Actionscript 3,Https,Client Server,我正试图将一些数据从闪存发送到服务器。我用测试服务器进行测试,一切正常。但当我改为将其测试到真实服务器时,它会向我发送一个错误:“Get Alert!Type=22”,因此我搜索了它,发现这是因为真实服务器运行在HTTPS上,而测试运行在HTTP上。因此,在阅读我正在使用的as3httpclienlib库的文档时,我发现一些HTTPS服务器存在一个bug,导致了一些错误,并且flash发送的数据没有超过40kb,因此抛出了错误类型22->Record overflow 这只发生在TLS套接字上,

我正试图将一些数据从闪存发送到服务器。我用测试服务器进行测试,一切正常。但当我改为将其测试到真实服务器时,它会向我发送一个错误:“Get Alert!Type=22”,因此我搜索了它,发现这是因为真实服务器运行在HTTPS上,而测试运行在HTTP上。因此,在阅读我正在使用的as3httpclienlib库的文档时,我发现一些HTTPS服务器存在一个bug,导致了一些错误,并且flash发送的数据没有超过40kb,因此抛出了错误类型22->Record overflow

这只发生在TLS套接字上,因此我认为解决方案是将TLSSocket更改为SSLSocket

这是我用来将数据发送到服务器的代码:

var client:HttpClient = new HttpClient();
var uri:URI = new URI("http://www.snee.com/xml/crud/posttest.cgi");
var variables:Array = [{name:"fname", value:"FirstName1"}, {name:"lname", value: "LastName1"}];

client.listener.onData = function(event:HttpDataEvent):void {
  // Notified with response content in event.bytes as it streams in
};

client.listener.onComplete = function(event:HttpResponseEvent):void {
  // Notified when complete (after status and data)
};

client.postFormData(uri, variables);
我怎样才能换这个插座

有人举个例子吗


这就是问题的解决办法吗

在as3httpclientlib中,将套接字从TLSSocket更改为SecureSocket并不容易。TLSSocket中的错误22可能是由于解析服务器证书时出错造成的。尝试此修补库版本谢谢你,fsbmain,我尝试了你发布的AS3Crypto库的修补版本,现在映像已加载到服务器上,但在数据完全加载之前连接已关闭,因此如果你手动解码映像,它将被剪切,由于连接已关闭,因此在base 64字符串变量之后的其他数据未加载。我认为数据量的问题仍然存在,这个pach只解决了HTTPS连接的问题。有人知道如何解决这个问题吗?有没有其他图书馆也这样做,但没有这些问题?谢谢但是为什么不想使用原生as3 URLLoader呢?我没有TLS/SSL的所有这些问题,因为我必须连接到REST服务器,并且必须发送变量,如作为示例的代码所示。我将变量发送到一个API,这是应该发送的方式。您需要PULL和PUT请求吗?对于REST服务中as3客户机的请求类型,通常会使用一个附加参数(例如reqType=put),因为使用as3httpclient还有其他不足,例如它需要套接字策略服务器。至于连接,我没有其他的想法,为什么它关闭,在哪一边(客户端或服务器)。我只能建议您只使用TLS,不要在TLSSocket中使用SSL,因为我在TLSSocket中有SSL错误。