台灣最大程式設計社群網站
線上人數
1183
 
會員總數:246209
討論主題:189782
歡迎您免費加入會員
討論區列表 >> ASP >> 如何做一個WebServices讓使用者撈XML資料回去?
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
如何做一個WebServices讓使用者撈XML資料回去?
價值 : 200 QP  點閱數:1222 回應數:14
樓主

amycat
門外漢
0 1
164 6
發送站內信

我有寫過去別人網站撈XML回來解讀,但現在反過來是對方要拋2個參數給我,
我依這2個參數查詢出資料後組成XML回傳給對方,
網路上搜尋好像都只有去撈別人的資料,這是要寫成WebServices的型式嗎? 應該如何下手呢?
另外再請問,ASP可以使用Httpwebrequest語法嗎? 謝謝!


搜尋相關Tags的文章: [ WebServices ] , [ XML ] , [ Httpwebrequest ] ,
本篇文章發表於2015-07-23 23:43
1樓
回應

小羊窒息
捐贈 VP 給 缺氧的羊:窒息 檢舉此回應
基本上不用想的那麼複雜,

你只要準備1個頁面(看是用網址參數或是post參數), ooo.asp

然後另外自己做一個測試用的html, ttt.html(這個頁面放2個欄位, post到 ooo.asp)

最後ooo.asp依據ttt.html所傳來的資料, Response指定格式的XML文字資料即可
(只要你在ttt.html按下按鈕之後, 在ooo.asp能看到指定的內容即可)

再把ooo.asp的網址提供給對方, 對方自然會去做後續的事...
本篇文章回覆於2015-07-27 03:49
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

amycat
檢舉此回應
對方公司是要求要直接傳送回他們的伺服器,
目前我是先接收他們的XML解讀後查詢組出他們要的XML,但是回傳的步驟我在想,
我是不是要對方在傳來的XML裡加上要回傳的URL,我再以XMLHTTP方式丟過去?
本篇文章回覆於2015-07-27 09:46
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
回應

小羊窒息
捐贈 VP 給 缺氧的羊:窒息 檢舉此回應
如果對方比較大咖(例如是上包, 或是出錢單位...或是其他因素....),

那, 的確是像你所說的那樣, 對方怎麼說, 就得照作...


另外, ASP後台是可以使用 XMLHTTP的


dim http
set http=server.createobject("MSXML2.XMLHTTP") '//MSXML2.serverXMLHTTP也可以
Http.open "POST","http://127.0.0.1/OOXX/test2.asp",false
postData = "ddt=123"
Http.send postData 'post的參數資料...


可參考微軟的範例(google:【asp MSXML2.XMLHTTP】也有很多範例可用)
https://support.microsoft.com/zh-tw/kb/290591
本篇文章回覆於2015-07-27 17:56
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
回應

小羊窒息
捐贈 VP 給 缺氧的羊:窒息 檢舉此回應
基本上對方至少要準備1個接收資料的頁面, 讓你丟資料回去...
至於要丟哪些參數回去, 就看對方準備了什麼(我放的例子就是一個參數叫做ddt, 參數值是123)
本篇文章回覆於2015-07-27 17:58
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
作者回應

amycat
檢舉此回應
我比較頭痛的是後台,
前台A.asp
Set xmlhttp = CreateObject("MSXML2.serverXMLHTTP")
xmlhttp.open "POST", "http://127.0.0.1/B.asp?xml=", False

strXML = strXML & "<?xml version=""1.1.0"" ?>" & vbCrLf
strXML = strXML & "<ron> & vbCrLf
.
.
.
strXML = strXML & "</ron>
xmlhttp.send strXML

但是我真的試不出來B.asp要怎麼接收A.asp傳送過來的XML,不管怎麼load都是空白,拜託誰來救救我,感激不盡><
B.asp目前是這樣寫
Set xmlDom = Server.CreateObject("MSXML2.DOMDocument")
xmlDom.async = False
xmlDom.setProperty "ServerHTTPRequest", True
xmlDom.loadXML Request("xml")
本篇文章回覆於2015-07-27 18:32
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
回應

小羊窒息
捐贈 VP 給 缺氧的羊:窒息 檢舉此回應
執行a.asp之後,

在B.asp直接Response.Write Request("xml")

有資料嗎?
本篇文章回覆於2015-07-28 00:28
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
作者回應

amycat
檢舉此回應
有資料,但被當成html了
本篇文章回覆於2015-07-28 02:44
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
8樓
回應

小羊窒息
捐贈 VP 給 缺氧的羊:窒息 檢舉此回應
被當成HTML不是問題, 直接看原始碼, 看看正不正常...

正常的話才需要去思考 xmlDom.loadXML Request("xml") 之後都是空白的問題...

本篇文章回覆於2015-07-28 07:04
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
9樓
作者回應

amycat
檢舉此回應
您說的,我一開始都檢查了,原始碼完全正常,可是loadXML還是無法使用,
沒時間,只好放棄,改帶參數了
本篇文章回覆於2015-07-28 11:25
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
10樓
回應

小羊窒息
捐贈 VP 給 缺氧的羊:窒息 檢舉此回應
其實本來就不必特地弄XML格式呀,

2方在互傳資料時, 除非對方有要求格式,

不然直接用網址參數(或post)就可以快速解決了...

=======================
主要還是看你們這邊跟對方溝通的結果啦~
本篇文章回覆於2015-07-28 11:53
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
11樓
作者回應

amycat
檢舉此回應
因為資料量太大,我這方還是會組XML給Client端使用啊
本篇文章回覆於2015-07-28 17:30
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
12樓
回應

小羊窒息
捐贈 VP 給 缺氧的羊:窒息 檢舉此回應
(就我目前的經驗)我比較好奇的是,

對方傳2個參數給你,然後要取得資料的話,基本上是你的頁面直接輸出XML(或指定格式)的資料,
對方直接就可以解析,然後存檔(或是顯示在畫面上)

==以上是我跟客戶進行資料交換的方式,不論是對方提供webService,或是我這邊提供,都是這樣子而已==

如果對方傳2個參數給你之後,
你還得另外將資料回傳給對方的伺服器(那就表示對方還得另外再準備1個頁面來專門接收你所回傳的資料)
對雙方而言都是多一份工,
很難想像會有客戶這樣做...
(我不曉得你們溝通的內容,無從判定......)


另一種情況是(我之前的公司是大咖,出錢的最大),
我方直接要求對方把資料定時寫入至我方的資料庫(由我方開port,指定帳號密碼給對方用),
我方連這個部份的工作都省了,直接要求對方做好...
我方只需要寫自己需要的查詢程式......(各種資料的update,都是對方要做到好)
本篇文章回覆於2015-07-28 17:55
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
13樓
作者回應

amycat
檢舉此回應
我方組出XML當然是response.write就可以啦,不用再傳值,
如果參數少url省事,但我們也有參數極多的資料交換,這種不研究出loadXML的問題,後續會是個麻煩啊,
我們現在連帳密都是亂數產生,一天換一組在檢查的,其實小小公司,搞這麼麻煩也實在挺煩的啊
本篇文章回覆於2015-07-28 18:08
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
14樓
回應

小羊窒息
捐贈 VP 給 缺氧的羊:窒息 檢舉此回應
如果是參數相當多(假設又屬於不固定的類型),然後又打算只寫1隻程式來負責這一切,
那的確是走XML來傳遞會比較快。。。


簡單來說,你現在的問題就是對方丟XML給你,然後你要解析對方丟給你的資料,
接著再進行回傳,但光是在模擬對方丟資料來的時候,就無法LoadXML了...
是嗎??...


如果是的話,試看看 【xmlDom.loadXML "事先寫好固定的XML標籤"】
直接把指定內容寫在b.asp (不靠a.asp來傳送), 看能不能跑...
本篇文章回覆於2015-07-28 22:37
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.