我有一个Adobe Flex Web应用程序,我们正在转换为Adobe AIR应用程序。在服务器端,我有一个只接受HTTP POST请求的servlet。我们使用navigateToUrl()
打开一个包含该POST请求结果的网页。在Web应用程序中,这非常有效(使用请求的结果打开一个新选项卡),但使用完全相同的代码从Adobe AIR客户端无效。 HTTP POST 会转换为HTTP GET ,但servlet不接受。 Web浏览器显示:
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
)
我检查了this forum post但是那里给出的解决方案(用字符串本身替换指向String的const
)没有意义,并且在我尝试时没有用。
我也看了this question,但那里没有真正的答案。注释表明用户在其URL中添加了一个尾部斜杠以使其正常工作,但这在我的情况下不起作用,因为url的格式如下:
http://ipaddress:8080/myapp/export/eventhistory1339595975131.html
我正在使用Adobe Air 3.3和Flex SDK 4.5
答案 0 :(得分:1)
查看navigateToURL
方法的documentation似乎将POST
个请求转换为GET
<强>参数强>
request:URLRequest - 指定URL的URLRequest对象 导航。对于在Adobe AIR中运行的内容,使用时 navigateToURL()函数,运行时处理使用的URLRequest POST方法(将其method属性设置为的方法 URLRequestMethod.POST)使用GET方法。
或许改用URLLoader?