我正在尝试在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调用此服务时,它可以工作。
答案 0 :(得分:0)
从mlavie找到答案:http://forums.adobe.com/thread/746809
如果“request.data”为空(“”)或为null,则忽略“request.method = URLRequestMethod.POST”,并发出GET动词。我没有看到任何地方记录,并且在我看来这是一个错误。使用空体发送“request.method = URLRequestMethod.POST”是完全合法的。一些web服务不需要输入,当然包含静态XML的“哑”网页不需要输入来呈现自己。