gpt4 book ai didi

actionscript-3 - 使用 as3httpclientlib 从 as3 air 项目到 web 服务的 https

转载 作者:太空宇宙 更新时间:2023-11-03 12:49:19 25 4
gpt4 key购买 nike

我正在尝试更改已完成的 Web 服务实现以使用 HTTPS。

我一直在使用 as3httpclientlib ( https://code.google.com/p/as3httpclientlib/ )。

当我使用非 ssl 端点时,它按预期工作。

但是,当我使用下载页面 ( https://code.google.com/p/as3crypto/downloads/list ) 或包含的 as3crypto-1_3_patched.swc 中的 SSL 端点和版本 1.3 as3crypt 时,我得到以下信息:

I DONT KNOW HOW TO HANDLE DER stuff of TYPE 22
I DONT KNOW HOW TO HANDLE DER stuff of TYPE 22
I DONT KNOW HOW TO HANDLE DER stuff of TYPE 22
I DONT KNOW HOW TO HANDLE DER stuff of TYPE 22
I DONT KNOW HOW TO HANDLE DER stuff of TYPE 12
I DONT KNOW HOW TO HANDLE DER stuff of TYPE 22
I DONT KNOW HOW TO HANDLE DER stuff of TYPE 22
I DONT KNOW HOW TO HANDLE DER stuff of TYPE 22
I DONT KNOW HOW TO HANDLE DER stuff of TYPE 22
[Fault] exception, information=TypeError: Error #1009: Cannot access a property or method of a null object reference.

带有源自 DER.as 的第 123 行的痕迹 https://code.google.com/p/as3crypto/source/browse/trunk/as3crypto/src/com/hurlant/util/der/DER.as?r=7以及 X509Certificate.as 第 225 行的错误 https://code.google.com/p/as3crypto/source/browse/trunk/as3crypto/src/com/hurlant/crypto/cert/X509Certificate.as?spec=svn28&r=7

当我使用最新版本的as3crypthttps://code.google.com/p/as3crypto/source/detail?r=28我明白了

[Fault] exception, information=Error: couldn't parse DER stream.

https://code.google.com/p/as3crypto/source/browse/trunk/as3crypto/src/com/hurlant/util/asn1/type/SetType.as 的第 23 行抛出

我尝试访问的网络服务位于 azurewebsites 上,因此将使用 *.azurewebsites.net 证书。

我也在使用 ASC2编译器,这导致了一些我必须在加密项目中修复的错误,包括将 if (hex.length&1==1) hex="0"+hex; 更改为 if (( hex.length&1)==1) hex="0"+hex; 我发现张贴在这里 com.hurlant.util.hex syntax error on air sdk 3.5

我开始认为这可能与 Azure 网站上执行 SSL 的方式有关,因为当我完全取消请求时,我仍然遇到相同的错误,但指向 https://www.google.com ,我没有错误。

他们在他们的网站上声明:

HTTPS doesn't always work. There are some minor bugs with the as3crypto library, so for example https at yahoo and yahoo owned domains (like delicious) don't currently work.

我查看了 as3crypt 的问题列表,想知道其中是否包含修复:https://code.google.com/p/as3crypto/issues/list

有谁知道我为什么会收到这些错误(天蓝色对他们的证书所做的不同(可能是通配符?))以及我该如何解决?是否有有效的 as3crypto 维护版本?或者是否有更好的方式从 Air 移动应用程序使用 https 网络服务?

****更新****

我尝试使用 as3crypto 的补丁版本,但仍然不满意。以下是错误时我的堆栈跟踪的副本。似乎是解析证书时出错?

enter image description here

我也考虑过改用 SecureSocket,但不幸的是它在 iOS 上不受支持。

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/SecureSocket.html

AIR profile support: This feature is supported on all desktop operating systems, but is not supported on all AIR for TV devices. On mobile devices, it is supported on Android, but not on iOS. You can test for support at run time using the SecureSocket.isSupported property.

重新创建:

向 azurewebsites.net 的任何 https 子域发出获取请求。

即以下代码将重现:

var client:HttpClient = new HttpClient();
client.get(new URI("https://httpstest.azurewebsites.net"));

最佳答案

我对 DER 解码有同样的问题,解决这个问题帮助了我: http://code.google.com/p/as3crypto/issues/detail?id=39

关于:

Or is there a better way for consuming https webservices from Air mobile apps?

你可以尝试用 as3http 客户端中的 Flash 原生 SecureSocket 替换 as3crypto 中的 TLSSocket,我认为应该不会太难做。在我的项目中,我尝试同时使用 SecureSoketTLSSocket 并站在 TLSSocket 上,因为 SecureSoket 需要 FP 11 而不是'与我们在测试服务器上使用的自签名证书一起工作,但 SecureSoket 也可以正常工作,并且显示出比 TLSSocket 更好的性能。您还可以从我的 github ( https://github.com/fsbmain/as3public ) 获取已经打补丁的 as3crypto 版本 :)

如果您仍然遇到问题,请提供您的网络服务端点,以便我能够对其进行测试。

更新:

我能够重现您的问题并使用我的补丁 as3crypto 库测试证书解析(它仍然允许通过解析进行更深入的解析),我还测试了相同证书的解析但使用浏览器下载 - 两者的结果相同例(如您的屏幕截图所示),因此结论是 TLSSocket 加载了正确且完整的证书字节但无法解析它。我试图修复解析,但它需要更深入地研究 as3crypto DER 格式实现。所以恐怕使用 as3httpclient 的唯一方法是修复 DER 解析。

顺便说一句,为什么标准的 URLLoader 不适合你?

关于actionscript-3 - 使用 as3httpclientlib 从 as3 air 项目到 web 服务的 https,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18703215/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com