我有一个Adobe Flex Web应用程序,我们正在将其转换为Adobe AIR应用程序。在服务器端,我有一个只接受HTTP POST请求的servlet。我们使用navigateToUrl()
打开包含该 POST 请求结果的网页。在 Web 应用程序中,这运行良好(打开一个新选项卡并显示请求的结果),但它无法使用完全相同的代码从 Adobe AIR 客户端工作。HTTP POST 被转换为 HTTP GET,而 SERVLET 不接受该 GET。网络浏览器显示:
HTTP Status 405 - Request method 'GET' not supported.
请求的方式如下:
var request:URLRequest = new URLRequest();
request.method = URLRequestMethod.POST;
request.url = presentationModel.exportURL;
(exportURL
变量是一个看起来像http://ipaddress:8080/myapp/export/eventhistory1339595975131.html
的字符串)
我检查了这个论坛帖子,但那里给出的解决方案(用字符串本身替换指向字符串的const
)没有意义,并且在我尝试时不起作用。
我也看了这个问题,但那里没有真正的答案。该注释表明用户在他的 URL 中添加了一个尾部斜杠以使其工作,但这在我的情况下不起作用,因为 url 的形式是: http://ipaddress:8080/myapp/export/eventhistory1339595975131.html
我正在使用 Adobe Air 3.3 和 Flex SDK 4.5
查看navigateToURL
方法的文档,它似乎将POST
请求转换为GET
参数
request:URLRequest — 一个 URLRequest 对象,用于指定 URL 到 导航到。对于在 Adobe AIR 中运行的内容,当使用 navigateToURL() 函数,运行时处理使用 POST 方法(其方法属性设置为 URLRequestMethod.POST) 使用 GET 方法。
也许使用 URLLoader 代替?