gpt4 book ai didi

apache-flex - 在 Flex 中,我可以发送 HTTPService POST 请求而不是 GET 请求吗?

转载 作者:可可西里 更新时间:2023-11-01 17:10:41 24 4
gpt4 key购买 nike

当 Flex (HTTPService) 通过 SSL< 加载 XML 时,Internet Explorer (6,7) 中存在已知问题。在这种情况下,Flash Player 会抛出 Error #2032: Stream Error

根据 Microsoft 的建议和 others , "Cache-Control: no-store"应该在服务器端设置来解决这个问题。

不幸的是,我无法访问应用程序的后端,因此我应该通过 Flex 来解决它。

我的目标是在运行时加载带有配置的 xml 文件。
Flex 中不允许 GET 请求的自定义 header (如果我错了请告诉我)。因此,我决定通过 POST 请求来实现我的目标,令人惊讶的是它运行良好。

这是我附带的代码:

var httpService:HTTPService = new HTTPService();
httpService.url = 'config.xml';
httpService.method = 'POST';
httpService.requestTimeout = 10;
httpService.contentType = "application/xml";
httpService.headers["Cache-Control"] = "no-store";
httpService.resultFormat = "e4x";
var localResponder:Responder = new Responder(
function(event:ResultEvent):void {
//event.result returns the required xml configuration
},
function(event:FaultEvent):void {
});
var token:AsyncToken = httpService.send({});
token.addResponder(localResponder);

我的问题是:当发送 POST 请求而不是 GET 请求时,会不会有任何副作用?



更新:

为了证明 GET 请求被剥离了 header ,我采用了 @Reboog711 提供的代码并创建了一个小应用程序。这是代码:

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx">

<fx:Script>
<![CDATA[
import mx.rpc.http.HTTPService;

protected function sendHTTPRequest(event:MouseEvent):void
{
var httpService:HTTPService = new HTTPService();
httpService.url = 'xml.xml';
var headerData : Object = new Object();
headerData['Cache-Control'] = 'no-store';
httpService.headers = headerData;
httpService.send();
}
]]>
</fx:Script>

<s:Button label="SEND HTTP REQUEST"
horizontalCenter="0" verticalCenter="0" click="sendHTTPRequest(event)"/>

</s:Application>

这是我在发送 HTTP 请求时在 Charles 应用程序中看到的内容。

enter image description here

自己测试一下对不对here .此外,当我试图解决我的问题时,我已经看到许多证据表明无法使用自定义 header 发送 GET 请求。你可以看看here .

谢谢!

最佳答案

您应该能够添加 headers到 HTTPService 请求没有任何问题。在将 Flex 应用程序与 YouTube API 集成时,我以前做过。从概念上讲,它应该是这样的:

var httpService:HTTPService = new HTTPService();
var headerData : Object = new Object();
headerData['Cache-Control'] = 'no-store';
http.headers = headerData;

如果您执行 Google Search出现其他链接。只要您的服务同时支持 GET 和 POST 请求;我不知道为什么你会遇到任何问题。

关于apache-flex - 在 Flex 中,我可以发送 HTTPService POST 请求而不是 GET 请求吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17930909/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com