【发布时间】: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 中。有什么想法可以让我获得更多信息吗?我无法控制我们加载的网址是“定位”的服务器。
标签: json xml actionscript-3 flash