来自Adobe Air的Http POST无法正常工作

时间:2012-06-13 14:22:22

标签: flex post air

我有一个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

1 个答案:

答案 0 :(得分:1)

查看navigateToURL方法的documentation似乎将POST个请求转换为GET

  

<强>参数

     

request:URLRequest - 指定URL的URLRequest对象   导航。对于在Adobe AIR中运行的内容,使用时   navigateToURL()函数,运行时处理使用的URLRequest   POST方法(将其method属性设置为的方法   URLRequestMethod.POST)使用GET方法。

或许改用URLLoader