您现在的位置:主页 > 图像设计 > Flash教程 >

flash9/flash cs3(as3)通过soap访问Web Services

来源:新2备用网址hg622.com|首页吧 责任编辑:Jzq8 发表时间:2011-03-17 点击:次

在SOAPCall类里面有request和response两个对象,分别是提交数据和返回数据.

下面是节选SOAPCall类的yncInvoke方法的一部分,实现request的构造和数据发送(这里是流程,具体实现细节在PendingCall类里面):

//callback是PendingCall的实例.
callback.encode();

callback.callbackMethod?=?callbackMethod;?//?Callback?method

//?Populate?parameters
callback.setupParams(args);

//?prepare?response?object
var?response?=?new?();
response.ignoreWhite?=?true;
response.callback?=?callback;
response._startTimeMark?=?startTime;


callback.response?=?response;

//?create?the?async?response?mechanism
response.onData?=?function(src)
{
}
//?fire?message
callback.request.sendAndLoad(this.endpointURI,?response,?"");
//-------------------------------------------------------------------------------------------

看到上面的代码,就会豁然开朗,就是使用soap协议,来提交和获取数据.那么,我们就可以很简单的构成一个SOAP 请求.我们看一下soap请求的格式(://roading/Service/test.asmx?op=say):
下面是一个 SOAP 请求和响应示例。所显示的占位符需要由实际值替换。

POST?/Service/test.asmx?HTTP/1.1
Host:?roading
Content-Type:?text/xml;?charset=utf-8
Content-Length:?length
SOAPAction:?"http://www.roading.net/say"





string



一个soap请求包括头部和数据.
soap请求头部包括:

POST?/WebService/test.asmx?HTTP/1.1
Host:?roading.net
Content-Type:?text/xml;?charset=utf-8
Content-Length:?length
SOAPAction:?http://www.roading.net/say
URLRequestHeader不支持post,host和Content-Length(ArgumentError: Error #2096: HTTP 请求标头 host 不能通过 ActionScrt 设置。),同时也不必要,必须设置的是Content-Type和SOAPAction.

//
r.requestHeaders.push(new?URLRequestHeader("Content-Type",?"text/xml;charset=utf-8"));
r.requestHeaders.push(new?URLRequestHeader("SOAPAction",?"http://www.roading.net/say"));
//
soap请求数据为:


??//调用方法..?命名空间
??hello?//参数
?

整个的soap请求如上面所示...就可以使用URLLoader和URLRequest类来发送和接收数据了.下面是一个完整的调用WebServices的测试代码(不包括解析接收的数据):

//WebService网址(为测试写的例子)?http://www.roading.net/WebService/test.asmx
import?.net.*;
var?soap:Namespace?=?new?Namespace("http://schemas.xmlsoap.org/soap/envelope/");

var?r:URLRequest?=?new?URLRequest("http://www.roading.net/WebService/Test.asmx?op=say");
r.method?=?URLRequestMethod.POST;
r.requestHeaders.push(new?URLRequestHeader("Content-Type",?"text/xml;charset=utf-8"));
r.requestHeaders.push(new?URLRequestHeader("SOAPAction",?"http://www.roading.net/say"));


var?rXML:XML?=?
????
?????
????
????;
???
rXML.soap::Body.appendChild(
??//
??hello?//
?
);

r.data?=?rXML;

var?l:URLLoader?=?new?URLLoader();
l.dataFormat?=?URLLoaderDataFormat.TEXT;
l.load(r);

l.adentListener("ioError"?,err);
l.addEventListener(Event.COMPLETE,xmlLoaded);
function?xmlLoaded(d)
{
?trace(l.data);
?t.text?=?l.data;
}

function?err(e)
{
?trace(e);
}

    发表评论
    请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
    评价:
    表情:
    验证码:点击我更换图片 匿名?

    推荐图文

    • 三分钟理解Flash中的level层级关系
    • 电子杂志设计制作常用Flash技术
    • 基于flash设计的网站 一场奇妙的网络旅行
    • Flash极佳的交互性和创造性25个国外优秀Flash网站
    • 快速获取Flash源程序中的素材
    • Flash实例教程:鼠标响应显示图片的动画效果
    • Flash 动画人物角色行走的几种实现方式
    • 用组件控制Flash中被导入视频的播放暂停
    • Flash AS制作简单的课件倒计时
    Alexa - 客户服务 - 联系方法 - 招聘信息 - 友情链接 - 网站地图 - TAG标签 - RSS订阅
    Copyright ? 2010-2012 JZQ8.COM. 新2备用网址hg622.com|首页吧|新2备用网址hg622.com|首页去吧 版权所有
    冀ICP备09002514号
    冀ICP备09002514号 网络报警 企业法人营业执照 中国互联网协会 支付宝付款 网银在线付款