pb11.5 訪問webservice,回傳值是不是有大小限制啊?好像資料多了就不能回傳了?
SoapConnection lsc_conn //定義SoapConnection物件
getfiledirimplport lproxy_obj //定義生成的代理物件
String ls_proxy_name = "getfiledirimplport"//生成的代理物件名稱
String ls_url = "http://localhost:8080/webService/GetFileDir"//WebService URL
lsc_conn =Create SoapConnection
lsc_conn.SetOptions("SoapLog=~"soaplog.txt~"")
int li_ret,i
li_ret =lsc_conn.Createinstance(lproxy_obj,ls_proxy_name,ls_url)
If li_ret<>0 Then
MessageBox("錯誤","呼叫失敗,錯誤號碼:"+String(li_ret))
Return
End If
try
tns__getfiledir lst_request
lst_request.arg0=sle_fileurl.Text
tns__getfiledirresponse lst_result
lst_result=lproxy_obj.getfiledir(lst_request)
mle_filedir.Text=lst_result.ws_return
catch ( SoapException e )
messagebox ("Error!", e.getMessage()) // error handling
end try
destroy lsc_conn
但是發現生成的soaplog.txt 檔案卻又結果,大家有發現這種問題么?
uj5u.com熱心網友回復:
不能啊,一般是回傳資料集的!寫個簡單函式試試!
uj5u.com熱心網友回復:
不能?什么意思,是有大小限制嘍?我這個是java寫的一個webservice,回傳一個字串,是xml的字串。
uj5u.com熱心網友回復:
多少行啊,原來.net+IIS,一般幾萬行沒問題uj5u.com熱心網友回復:
連上soap頭只有898字符去掉soap算起來就426字符
uj5u.com熱心網友回復:
lst_result=lproxy_obj.getfiledir(lst_request)mle_filedir.Text=lst_result.ws_return
不用回傳值,用ref來把引數傳進去,回傳值這里我也不知道是不是有限制,待會兒試試
ll_retrieve = pb_soap.uf_retrieve(ls_syntax,ls_sql,ref dwo_blob,ref ls_returnerr)
soaplog內容很大300多K,傳入的引數,和回傳的資料全在里面
uj5u.com熱心網友回復:
java那邊不具備傳值參考的說法,pb的這個傳值辦法行不通,5555uj5u.com熱心網友回復:
應該沒有限制,你測驗一下,如果回傳值是100個長度時是否成功然后再回傳1000個長度看一下
uj5u.com熱心網友回復:
我試過了,第一樓中的代碼就不行,898(包括soap頭),實際只有426字符uj5u.com熱心網友回復:
這個可能要試一下才能知道了。uj5u.com熱心網友回復:
測驗了回傳值,int,string,blob回傳值沒問題,但是不要超過pb的string限制32767,超過的就得用blob
uj5u.com熱心網友回復:
如果有回傳值, 在 soaplog.txt 里應該也能看到不知道 lst_result.ws_return他的長度是不是大于了pb的string限制,
你得在webservice里判斷一下 ws_return的長度
uj5u.com熱心網友回復:
在soaplog.txt里面能看到回傳值,但是lst_result.ws_return是null值,很無奈的問題,不知道什么原因uj5u.com熱心網友回復:
我這個webservice是回傳指定目錄的xml樹,類似<?xml version="1.0" encoding="UTF-8"?>
<root>
<dir name="a" />
<dir name="aa">
<dir name="ba" />
<dir name="bb" />
<dir name="bc" />
<file name="b.xml" />
</dir>
<dir name="aaaaaa">
<dir name="ba" />
<dir name="bb" />
<dir name="bc" />
<file name="b.xml" />
</dir>
<dir name="b">
<dir name="ba" />
<dir name="bb" />
<dir name="bc" />
</dir>
<dir name="bb">
<file name="b.xml" />
</dir>
</root>
這時lst_result.ws_return的長度是358,但是我一旦在root下面在加一個空目錄就不行了,lst_result.ws_return就成了null。
uj5u.com熱心網友回復:
在root下面在加一個空目錄,這是怎么做的uj5u.com熱心網友回復:
意思就是<root><a/></root>和空目錄沒關系,不說加空目錄了。
隨便把上面xml中的一個目錄名字變長一個字符。lst_result.ws_return就成了null。
uj5u.com熱心網友回復:
這種情況就很難判斷了,pb這邊我試過了沒有限制,java的就不知道了uj5u.com熱心網友回復:
你的pb11.5的版本號?uj5u.com熱心網友回復:
你是呼叫的webservice么?uj5u.com熱心網友回復:
3127 的那個,webservice也是用pb寫的uj5u.com熱心網友回復:
webservice部署在哪里?uj5u.com熱心網友回復:
iis5.0uj5u.com熱心網友回復:
不是啊,沒有大小限制的uj5u.com熱心網友回復:
還是參考傳遞吧uj5u.com熱心網友回復:
沒問題,不用考慮回傳值大小限制.如果傳輸中丟失了是因為傳輸中的問題.uj5u.com熱心網友回復:
大小好像是有限制的,32K吧,上傳也有限制轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/80610.html
標籤:Web 應用
上一篇:向sql資料庫中保存資料的時候總提示“資料轉換發生溢位”
下一篇:一個動態SQL的問題
