之前介绍了as3通过soap方式调用webservice的方法,现在介绍直接用get,post方式调用。
测试使用的本站的一个webservice:/study/aspnet/firstDemo/Service1.asmx,建议打开看一看,用微软的asp.net技术生成的,微软的东西做的还是很详细的。
as3测试代码:
package {
import flash.display.MovieClip;
import flash.events.Event;
import flash.events.IOErrorEvent;
import flash.events.MouseEvent;
import flash.events.SecurityErrorEvent;
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.net.URLRequestHeader;
import flash.net.URLRequestMethod;
public class Main extends MovieClip {
public function Main() {
// constructor code
var uld:URLLoader = new URLLoader();
var req:URLRequest = new URLRequest("/study/aspnet/firstDemo/Service1.asmx/HelloWorld? HTTP/1.1");
req.method = URLRequestMethod.GET;
req.requestHeaders.push(new URLRequestHeader("Content-Type", "text/xml;charset=utf-8"));
//req.requestHeaders.push(new URLRequestHeader("Content-Length", "100"));
uld.addEventListener(Event.COMPLETE, onLoaded);
uld.addEventListener(IOErrorEvent.IO_ERROR, onError);
uld.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onError);
var t:Number = new Date().getTime();
btn.addEventListener(MouseEvent.CLICK, click);
function click(e:Event):void {
t = new Date().getTime();
uld.load(req);
}
click(null);
function onError(e:Event):void {
tf.text = e.toString()+"\n用时:"+(new Date().getTime()-t)+"ms";
}
function onLoaded(e:Event):void {
trace(uld.data);
tf.text = uld.data.toString()+"\n用时:"+(new Date().getTime()-t)+"ms";
}
}
}
}
其实就是用as3直接访问/study/aspnet/firstDemo/Service1.asmx/HelloWorld? HTTP/1.1这个地址。
Content-Type可以加也可以不加,可能默认就是utf-8吧(不了解)。
Content-Length,as3是不支持的,无法通过as3添加,百度了一下“Content-Length”,没看懂,但是上面这个例子不加也没问题。
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。