我常去看的關(guān)于asp文章。你可以去看看,上面說的有!
創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比大通網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式大通網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋大通地區(qū)。費(fèi)用合理售后完善,10年實(shí)體公司更值得信賴。
ASP調(diào)用WEBSERVICE ----INDEX---- 1. soap請(qǐng)求方式 2. post請(qǐng)求方式 3. SHOWALLNODE函數(shù)(關(guān)于節(jié)點(diǎn)各屬性和數(shù)據(jù)顯示) --------------------- 一.SOAP請(qǐng)求示例 下面是一個(gè) SOAP 請(qǐng)求示例。所顯示的占位符需要由實(shí)際值替換。 POST /WebService1/UserSignOn.asmx HTTP/1.1 Host: 192.100.100.81 Content-Type: text/xml; charset=utf-8 Content-Length: length SOAPAction: "" ?xml version="1.0" encoding="utf-8"? soap:Envelope xmlns:xsi="" xmlns:xsd="" xmlns:soap="" soap:Body LoginByAccount xmlns="" usernamestring/username passwordstring/password /LoginByAccount /soap:Body /soap:Envelope 為了與WEBSERVICE交互,需要構(gòu)造一個(gè)與上完全相同的SOAP請(qǐng)求: % url = "" SoapRequest="?xml version="CHR(34)"1.0"CHR(34)" encoding="CHR(34)"utf-8"CHR(34)"?" _ "soap:Envelope xmlns:xsi="CHR(34)""CHR(34)" " _ "xmlns:xsd="CHR(34)""CHR(34)" " _ "xmlns:soap="CHR(34)""CHR(34)"" _ "soap:Body" _ "LoginByAccount xmlns="CHR(34)""CHR(34)"" _ "username"username"/username" _ "password"password"/password" _ "/LoginByAccount" _ "/soap:Body" _ "/soap:Envelope" 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", "" ‘一定要與WEBSERVICE的命名空間相同,否則服務(wù)會(huì)拒絕 xmlhttp.Send(SoapRequest) ‘這樣就利用XMLHTTP成功發(fā)送了與SOAP示例所符的SOAP請(qǐng)求. ‘檢測一下是否成功: Response.Write xmlhttp.Status”?” Response.Write xmlhttp.StatusText Set xmlhttp = Nothing % 如果成功會(huì)顯示200 ok,不成功會(huì)顯示 500 內(nèi)部服務(wù)器錯(cuò)誤? Connection: keep-alive . 成功后就可以利用WEBSERVICE的響應(yīng),如下: SOAP響應(yīng)示例 下面是一個(gè) SOAP 響應(yīng)示例。所顯示的占位符需要由實(shí)際值替換。 HTTP/1.1 200 OK Content-Type: text/xml; charset=utf-8 Content-Length: length ?xml version="1.0" encoding="utf-8"? soap:Envelope xmlns:xsi="" xmlns:xsd="" xmlns:soap="" soap:Body LoginByAccountResponse xmlns="" LoginByAccountResultstring/LoginByAccountResult /LoginByAccountResponse /soap:Body /soap:Envelope 這是與剛才SOAP請(qǐng)求示例所對(duì)應(yīng)的SOAP響應(yīng)示例,在成功發(fā)送請(qǐng)求后,就可以查看該響應(yīng) : If xmlhttp.Status = 200 Then Set xmlDOC =server.CreateObject("MSXML.DOMDocument") xmlDOC.load(xmlhttp.responseXML) xmlStr = xmlDOC.xml Set xmlDOC=nothing xmlStr = Replace(xmlStr,"","") xmlStr = Replace(xmlStr,"","") Response.write xmlStr Else Response.Write xmlhttp.Status"?" Response.Write xmlhttp.StatusText End if 請(qǐng)求正確則給出完整響應(yīng),請(qǐng)求不正確(如賬號(hào),密碼不對(duì))響應(yīng)的內(nèi)容就會(huì)信息不完整. 取出響應(yīng)里的數(shù)據(jù),如下: If xmlhttp.Status = 200 Then Set xmlDOC = server.CreateObject("MSXML.DOMDocument") xmlDOC.load(xmlhttp.responseXML) Response.Write xmlDOC.documentElement.selectNodes("http://LoginByAccountResult")(0).text ‘顯示節(jié)點(diǎn)為LoginByAccountResult的數(shù)據(jù)(有編碼則要解碼) Set xmlDOC = nothing Else Response.Write xmlhttp.Status"?" Response.Write xmlhttp.StatusText End if 顯示某節(jié)點(diǎn)各個(gè)屬性和數(shù)據(jù)的FUNCTION: Function showallnode(rootname,myxmlDOC)望大家不斷完鄯 2005-1-9 writed by 844 if rootname"" then set nodeobj=myxmlDOC.documentElement.selectSingleNode("http://"rootname"")當(dāng)前結(jié)點(diǎn)對(duì)像 nodeAttributelen=myxmlDOC.documentElement.selectSingleNode("http://"rootname"").attributes.length當(dāng)前結(jié)點(diǎn)屬性數(shù) returnstring=returnstring"BR節(jié)點(diǎn)名稱:"rootname if nodeobj.text"" then returnstring=returnstring"BR節(jié)點(diǎn)的文本:("nodeobj.text")" end if returnstring=returnstring"BR{BR" if nodeAttributelen0 then returnstring=returnstring"BR屬性數(shù)有? "nodeAttributelen" 個(gè),分別是:" end if for i=0 to nodeAttributelen-1 returnstring=returnstring"li"nodeobj.attributes(i).Name":?"nodeobj.getAttribute(nodeobj.attributes(i).Name)" /li" next if nodeobj.childNodes.Length0 then if nodeobj.hasChildNodes() and lcase(nodeobj.childNodes.item(0).nodeName)"#text" then是否有子節(jié)點(diǎn) set childnodeobj=nodeobj.childNodes childnodelen=nodeobj.childNodes.Length returnstring=returnstring"BRBR有 "childnodelen" 個(gè)子節(jié)點(diǎn);BR分別是: " for i=0 to childnodelen-1 returnstring=returnstring"li"childnodeobj.item(i).nodeName"/li" next end if end if returnstring=returnstring"BR}BR" response.write returnstring set nodeobj=nothing end if End Function 可以這樣用: If xmlhttp.Status = 200 Then Set xmlDOC = server.CreateObject("MSXML.DOMDocument") xmlDOC.load(xmlhttp.responseXML) showallnode "LoginByAccountResponse",xmlDOC’調(diào)用SHOWALLNODE Set xmlDOC = nothing Else Response.Write xmlhttp.Status"?" Response.Write xmlhttp.StatusText End if 二.POST請(qǐng)求示例 HTTP POST 下面是一個(gè) HTTP POST 請(qǐng)求示例。所顯示的占位符需要由實(shí)際值替換。 POST /WebService1/UserSignOn.asmx/LoginByAccount HTTP/1.1 Host: 192.100.100.81 Content-Type: application/x-www-form-urlencoded Content-Length: length username=stringpassword=string 構(gòu)造POST請(qǐng)求: % url = "" SoapRequest="username="username"password="password Set xmlhttp = server.CreateObject("Msxml2.XMLHTTP") xmlhttp.Open "POST",url,false xmlhttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"’注意 xmlhttp.setRequestHeader "HOST","192.100.100.81" xmlhttp.setRequestHeader "Content-Length",LEN(SoapRequest) xmlhttp.Send(SoapRequest) ‘這樣就利用XMLHTTP成功發(fā)送了與HTTP POST示例所符的POST請(qǐng)求. ‘檢測一下是否成功: Response.Write xmlhttp.Status”?” Response.Write xmlhttp.StatusText Set xmlhttp = Nothing % 如果成功會(huì)顯示200 ok,不成功會(huì)顯示 500 內(nèi)部服務(wù)器錯(cuò)誤? Connection: keep-alive . 成功后就可以利用WEBSERVICE的響應(yīng),如下: HTTP POST 下面是一個(gè) HTTP POST 響應(yīng)示例。所顯示的占位符需要由實(shí)際值替換。 HTTP/1.1 200 OK Content-Type: text/xml; charset=utf-8 Content-Length: length ?xml version="1.0" encoding="utf-8"? string xmlns=""string/string 顯示: If xmlhttp.Status = 200 Then Set xmlDOC = server.CreateObject("MSXML.DOMDocument") xmlDOC.load(xmlhttp.responseXML) showallnode "string",xmlDOC調(diào)用SHOWALLNODE Set xmlDOC = nothing Else Response.Write xmlhttp.Status"?" Response.Write xmlhttp.StatusText End if 以上是ASP用XMLHTTP組件發(fā)送SOAP請(qǐng)求,調(diào)用WEBSERVICE的方法,本人推薦在ASP環(huán)境下使用第一種方法,如果有更好的方法請(qǐng)聯(lián)系本人mailto:lyq8442002@msn.com .使用HTTP GET的方式如果有中文會(huì)出問題,數(shù)據(jù)量又不大。用HTTP POST的方法感覺多此一舉,其實(shí)上面的例子就是用POST的方式,只不過不是用POST的請(qǐng)求。用SOAP TOOLKIT要裝軟件,而且已沒有后繼版本
asp.net 調(diào)用java, 簡單點(diǎn)就把java寫成webservice,然后.net那邊遠(yuǎn)程引用。請(qǐng)放狗搜a(bǔ)xis和asp.net webservice。
那個(gè)你說的java 寫的webservice 說明文檔 沒有說實(shí)現(xiàn)接口?
兩個(gè)本來就是不靠邊的語言 在一個(gè)集成環(huán)境里面 你要找到實(shí)現(xiàn)接口 ,不然別人寫的東西也用不了
另外 我記得。net 好像不能直接使用java 寫的東西 ,另外 你找到實(shí)現(xiàn)接口 在說 要不然 很難有人給你準(zhǔn)確回答
額。。。。首先,你的服務(wù)器確定能同時(shí)運(yùn)行asp和jsp嗎?
java如果想取出內(nèi)部對(duì)象,必須經(jīng)過Servlet,這個(gè)是jsp的核心了,然后隨便是你用DWR還是自己寫的其他框架了。還有個(gè)方法就是通過Servlet把對(duì)象存儲(chǔ)到session,然后從頁面代碼中調(diào)出。只有JSP可以調(diào)出session中的java對(duì)象并且可以執(zhí)行其中的方法。
1、通過url的方式可以通信,
舉例:
asp注冊了一個(gè)用戶,需要向java發(fā)送郵件:
asp注冊成功之后,通過url帶參數(shù)的方式,調(diào)用java的文件來執(zhí)行,當(dāng)然考慮到安全,還可以設(shè)計(jì)一個(gè)md5的加密參數(shù),保證數(shù)據(jù)不被篡改
2、asp和java之間的session可以通過將session保存到數(shù)據(jù)庫來達(dá)到共享,或者通過第三方的組件來實(shí)現(xiàn)。
一起用可以,只不過是理論上的一起用,如果你想把兩種語言的代碼放到一起去編譯那是不可能的,我講意思的是如果你開發(fā)的是個(gè)web系統(tǒng),那么你就可以用asp.net做web前端,數(shù)據(jù)庫操作調(diào)用java開發(fā)的webservice,這樣是可以的..
你就是學(xué)了什么都不可能把兩種語言的代碼放到一起編譯。。