FlashDevelop接收XML,Flash Pro接收JSON

时间:2016-09-07 14:21:30

标签: json xml actionscript-3 flash

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

当我在浏览器中导航到Feed网址时,我得到 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);

1 个答案:

答案 0 :(得分:1)

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

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

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

这应该确保您在任何版本的运行时使用的IDE中都能获得JSON。