【问题标题】:Http POST from Adobe air not working来自 Adob​​e air 的 Http POST 不起作用
【发布时间】:2012-06-13 14:22:21
【问题描述】:

我有一个 Adob​​e Flex Web 应用程序,我们正在将其转换为 Adob​​e AIR 应用程序。在服务器端,我有一个只接受 HTTP POST 请求的 servlet。我们使用navigateToUrl() 打开带有该 POST 请求结果的网页。在 Web 应用程序中,这可以完美运行(使用请求结果打开一个新选项卡),但它在 Adob​​e AIR 客户端中无法使用,使用完全相同的代码。 HTTP POST 被转换为 servlet 不接受的 HTTP 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 的字符串)

我检查了this forum post,但那里给出的解决方案(用字符串本身替换指向字符串的const)没有意义,并且在我尝试时没有工作。

我也看了this question,但那里没有真正的答案。评论表明用户在他的 URL 中添加了一个斜杠以使其工作,但在我的情况下这不起作用,因为 url 的形式是: http://ipaddress:8080/myapp/export/eventhistory1339595975131.html

我正在使用 Adob​​e Air 3.3 和 Flex SDK 4.5

【问题讨论】:

  • 当你说它不起作用时;你能详细说明吗?什么不起作用?你有错误吗?你有意外的行为吗?
  • 究竟是什么不工作?您收到任何错误消息吗?
  • @www.Flextras.com 我猜我们同时按了 Enter ;)
  • 我已将问题更新为更清晰。问题是 AIR 将 POST 变成了 GET。

标签: apache-flex post air


【解决方案1】:

查看documentationnavigateToURL 方法,它似乎将POST 请求转换为GET

参数

request:URLRequest — 一个 URLRequest 对象,它指定要发送的 URL 导航。对于在 Adob​​e AIR 中运行的内容,使用 navigateToURL() 函数,运行时处理一个使用 POST 方法(其方法属性设置为 URLRequestMethod.POST) 作为使用 GET 方法。

也许改用URLLoader

【讨论】:

  • 谢谢。完全错过了文档中的内容。我希望 Adob​​e 解决这个问题,我真的不明白他们为什么这样做。此外,因为如果您使用FileReference.download(Request, String),它确实会优化您的请求对象中的 POST 设置!所以如果他们愿意,他们可以支持它。
猜你喜欢
  • 2013-06-07
  • 1970-01-01
  • 1970-01-01
  • 2010-10-16
  • 2012-01-25
  • 1970-01-01
  • 1970-01-01
  • 2022-06-22
  • 1970-01-01
相关资源
最近更新 更多