關於PB呼叫Webservice的有效方法

2021-10-05 15:50:24 字數 1423 閱讀 3756

powerbuilder呼叫webservice客戶端總是有很多問題。proxy方法使用起來有很多限制,對後台webservice服務指令碼有很多要求,對複雜資料型別支援不好。inet方法使用時,對於pb9以下版本存在字符集的問題。pb9使用的是ansi單位元組字符集,而soap xml使用的utf8字符集,當引數或返回值有漢字時,必須使用轉碼操作才能正常顯示,再加上pb對webservice支援並不好,所以使用inet效率不高。本人認為使用msxml2.xmlhttp物件能夠有效解決webservice後台服務開發工具不同導致客戶端使用不便的問題。網上有許多xmlhttp開發經驗,但原始碼使用均有不少bug。本人在開發過程中實際操作使用,原始碼未經修改。由於使用xmlhttp物件涉及soap協議文字封裝問題,一般人員很難正確組裝,因此借用soapui工具,可以快速檢視有效soap封裝後的語句,複製黏貼到程式中稍加修改即可使用。

soapui截圖

然後將執行左側內容貼出,在程式中直接使用,pb中的**如下:

//使用微軟的msxml控制項開發,採用http/soap協議

//設定位址及呼叫引數報文

//send xml文字,該文字經過前期組裝

do while ole_http.readystate <> 4 //查詢狀態,延時

yield()

loop

//獲取返回、銷毀物件

由於採用soap底層協議,該方法適用於大多數pb的webservice客戶端的開發,不必擔心webservice後台服務由什麼工具開發,也無需擔心complex type 導致的問題。由於採用微軟的xmlparse工具,相容性較高,本人在使用pb的webservice proxy 和mssoap client30開發失敗後,採用此方法開發成功。pb的inet採用soap協議開發也可以成功,但執行效率不如使用msxml工具。

Android平台呼叫WebService詳解

部落格出處 手機號段歸屬地查詢 param phonesec 手機號段 public void getremoteinfo string phonesec catch exception e 獲取返回的資料 soapobject object soapobject envelope.bodyin 獲...

對於xfire動態呼叫webservice介面

xfire是辣麼過時,由於用到了,不能不研究一下。複雜型別返回值型別為 org.w3c.dom.document 型別物件 解析第乙個引數開始 document doc document os 0 element root doc.getdocumentelement listulist new a...

ASP構造SOAP呼叫WebService

一定要與webservice的命名空間相同,否則服務會拒絕 這樣就利用xmlhttp成功傳送了與soap示例所符的soap請求.檢測一下是否成功 以上 摘抄自網路,除以上方法外也可以使用 mssoap.soapclient30進行呼叫。這段 的主要意義在於可以了解到webservice的呼叫,主要是...