1

我正在尝试在 actionscript 中创建一个方法来调用 .Net 中的 Restful 服务。方法是:

public function executeService(serviceName:String):void
{
    var request:URLRequest = new URLRequest(serviceName);
    request.method = URLRequestMethod.POST;

    var variables:URLVariables = new URLVariables();

    var urlLoader:URLLoader = new URLLoader();
    urlLoader.dataFormat = URLLoaderDataFormat.VARIABLES;

    configureListeners(urlLoader);

    urlLoader.load(request);
}

Restful 接口如下所示:

[OperationContract]
[WebInvoke(Method = "POST", RequestFormat = WebMessageFormat.Xml, ResponseFormat = WebMessageFormat.Xml, BodyStyle = WebMessageBodyStyle.Bare, UriTemplate = "Authenticate1")]
XElement Authenticate1();

这个接口的实现是这样的:

public XElement Authenticate1()
{
    return new XElement("<Root>");
}

但是当我运行 actionscript 代码时,它会返回 I/O 错误:

Error #2032: Stream Error.

我不确定这段代码有什么问题,任何帮助将不胜感激。

如果我在 Restful 服务接口中将 Method 值更改为 GET,那么 Web 浏览器可以访问相同的 URL。所以我很确定这个 URL 没有问题。当然,一旦这件事起作用,我会添加 url 变量。

谢谢

更新: 当我从 Fiddler 调用此服务时,它可以工作。

4

1 回答 1

0

从 mlavie 找到答案:http ://forums.adobe.com/thread/746809

如果 "request.data" 为空 ("") 或 null,则忽略 "request.method = URLRequestMethod.POST",并发出 GET 动词。我在任何地方都没有看到记录,在我看来,这是一个错误。发送带有空正文的“request.method = URLRequestMethod.POST”是完全合法的。一些 web 服务不需要输入,当然包含静态 XML 的“哑”网页不需要输入来呈现自身。

于 2013-07-16T21:33:48.757 回答