`
hgfghe4
  • 浏览: 62294 次
  • 性别: Icon_minigender_1
  • 来自: 南京
最近访客 更多访客>>
社区版块
存档分类
最新评论

flash9/as3访问WebService的暂时替代方法

阅读更多

在前面写了
flash9/as3访问WebService的的方法
,后来发现这种方法不可行,一旦ws和flash不在同一机器上,flash就不能直接post ws 的方法.
google了一下,发现很多人也在寻找flash9/as3访问WebService的方法(
http://www.twelvestone.com/forum_thread/view/35257
),搜索了asp和php调用ws的方法, 通常可以使用post/soap的方法访问 WebService,其中使用post的请求方式和我前面介绍的方法一样,可惜使用flash就不行.
那么在没有找到好的方法使用ws之前,能不能用flash9/as3访问WebService呢,我觉得目前有两种替代的方法.
1.用asp,php,asp.net等等来访问ws,然后再用flash去调用这些页面,当然这种方法太不可取了...
2.在同一页面使用两个swf,有一不可见的as2的swf,另外的是as3的要使用的swf,使用as2连接ws,然后as3的swf利用localConnection获取as2访问ws得到的结果...
其实最根本的方法还是直接寻找as3连接ws的方法.
1.改写flash8里面的as2的mx.services包.
2.找到flex的rpc包的源文件
3.寻找另外或者跟简单的方法(flash remoting就可以很方便的利用as3访问,ws也许也有).
//
下面是利用asp和php访问ws的方法,没有利用封装的内容访问,也许能有参考作用(内容摘自论坛,不知道原始地址是哪儿,如果有朋友知道请留言)
//
asp的方法
//
1. soap请求方式
2. post请求方式
---------------------
一.soap请求示例
下面是一个 soap 请求示例。所显示的占位符需要由实际值替换。
post /webservice1/usersignon.asmx http/1.1
host: 192.100.100.81
content-type: text/xml; charset=utf-8
content-length: length
soapaction: "
http://tempuri.org/loginbyaccount
"
string
string
为了与webservice交互,需要构造一个与上完全相同的soap请求:
"& _
""& _
""& _
""& _
""&username&""& _
""&password&""& _
""& _
""& _
""
set xmlhttp = server.createobject("msxml2.xmlhttp")
xmlhttp.open "post",url,false
xmlhttp.setrequestheader "content-type", "text/xml;charset=utf-8"
xmlhttp.setrequestheader "host","192.100.100.81"
xmlhttp.setrequestheader "content-length",len(soaprequest)
xmlhttp.setrequestheader "soapaction", "
http://tempuri.org/loginbyaccount
" ‘一定要与webservice的命名空间相同,否则服务会拒绝
xmlhttp.send(soaprequest)
‘这样就利用xmlhttp成功发送了与soap示例所符的soap请求.
本文转自:http://www.5uflash.com/flashjiaocheng/Flash-as3-jiaocheng/1892.html
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics