FlashDevelop 接收 XML,Flash Pro 接收 JSON

Posted

技术标签:

【中文标题】FlashDevelop 接收 XML,Flash Pro 接收 JSON【英文标题】:FlashDevelop receives XML, Flash Pro receives JSON 【发布时间】:2017-01-15 07:07:00 【问题描述】:

我从客户的供应商处获得数据馈送。 Documention 说我可以获取 XML 和 JSON 格式的提要,但默认是 XML。要获取 JSON,我必须设置一个标头 Accept:application/json 并删除 Accept:application/xml 标头。 我没有在我的代码中设置或删除任何标题。 我正在使用普通的 URLLoader 来加载提要。

当我在浏览器中导航到提要 URL 时,我得到 XML。 当我在 FlashDevelop 中运行我的代码时,我得到 XML。 当我在 Flash Pro 中运行完全相同的代码时,我得到 JSON

有谁知道 Flash Pro 中出现这种情况的原因是什么?任何可以更改的隐藏设置? URLRequest.method 没有影响。调试模式与否没有影响。 我被踩了。

---------我试过的代码------------

var header:URLRequestHeader = new URLRequestHeader("Accept", "application/xml");
var headers:Array = [];
headers.push(header);
urlReq.requestHeaders = headers;
urlReq.method = URLRequestMethod.POST;

--------- 满载代码------------

_urlLoader.addEventListener(Event.COMPLETE, validateFeedLoaded);
_urlLoader.addEventListener(IOErrorEvent.IO_ERROR, handleFeedIOerror);
_urlLoader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, handleFeedSecError);
var urlReq:URLRequest = new URLRequest(_feedUrl);
urlReq.requestHeaders = [new URLRequestHeader("Accept", "application/json")];
_urlLoader.load(urlReq);

【问题讨论】:

是否做过任何基本的调试,比如嗅探您的各种客户端发送的请求的标头? 这个阶段没有客户参与,我还在构建这个数据源。但是,如果我检查代码中的 urlrequest.requestHeaders,我什么也得不到。 他们当然参与了,你在问为什么 3 个不同的客户会收到不同的结果。正如@Marc B 建议的那样,监视 HTTP 通信以查看发出的请求是否不同。 browser = client 1. flashdevel = client 2, flashpro = client 3. 确保您发送的标头没有被覆盖/替换。 Client != company customer x) 好吧,我是第一个承认我远非头部专家的人。我在这方面的知识延伸到检查我的代码中的 urlReg.requestHeaders 并且在跟踪它时我得到一个空值,无论我是在 FD 还是 Flash Pro 中。有什么想法可以让我获得更多信息吗?我无法控制我们加载的网址是“定位”的服务器。 【参考方案1】:

不同的客户端/应用程序有不同的默认值。不同版本的 flash/air 运行时可能对接受类型有不同的默认值。

如果你需要一致性,那么你应该在你的请求中明确设置接受类型:

urlrequest.requestHeaders = [new URLRequestHeader("Accept", "application/json")];

这应该确保您在使用的任何版本的运行时中都能在两个 IDE 中恢复 JSON。

【讨论】:

它可以在 FlashDevelop 中使用,谢谢。它只是在 Flash Pro 中不起作用。在 FlashDevelop 中,我可以将标头设置为 JSON 或 XML,并且效果很好,但在 Flash Pro 中,我使用代码设置的标头根本没有影响。

以上是关于FlashDevelop 接收 XML,Flash Pro 接收 JSON的主要内容,如果未能解决你的问题,请参考以下文章

用于游戏开发的 flashdevelop

在 PHP 中查询服务器并接收 XML 响应

Flash 开发环境搭建和文字滚动效果实例

如何使用 CS4 编译 Flash 11

调试设备上的iOS / AIR内容

FDT 找不到 Flash 播放器