带有Actionscript的.Net Restful POST

时间:2013-07-16 18:45:38

标签: c# .net actionscript-3 rest

我正在尝试在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 Interface看起来像这样:

[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变量。

由于

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

1 个答案:

答案 0 :(得分:0)

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

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