oleobject iole_http
iole_http = create oleobject
iole_http.connecttonewobject("MSXML2.ServerXMLHTTP")
iole_http.settimeouts(10000,10000,10000,60000)
try
iole_http.open("POST",ls_url,false)
iole_http.setrequestheader("Content-type","application/x-www-form-urlencoded")
iole_http.setrequestheader("Content-Length",string(ll_length))
iole_http.send(lblb_args)
catch(runtimeerror rte)
ls_err = "請求例外:" + rte.getmessage()
end try
在執行時,如果與服務器網路不通時,send會超時失敗,請問這時要如何獲取這個失敗的原因?我用rte.getmessage()獲取到的是說我的send函式呼叫失敗,像下面這樣:Error: Error calling external object function send at line 23 in function of_put_json of object n_pos_pay_le.
而不是俱體的錯誤內容,這個俱體的錯誤內容有什么辦法可以獲取到嗎?
uj5u.com熱心網友回復:
PB這個版塊,真沒人了么?唉!uj5u.com熱心網友回復:
lblb_args 引數值是怎么來的uj5u.com熱心網友回復:
//f_get_json_isbn//https://api.douban.com/v2/book/isbn/9787543632608
//https://api.douban.com/v2/book/isbn/7543632608
long ll_pos
ll_pos=pos(as_isbn,'-')
do while ll_pos>0
as_isbn=left(as_isbn,ll_pos - 1)+mid(as_isbn,ll_pos + 1)
ll_pos=pos(as_isbn,'-')
loop
Blob lblb_args
String ls_headers
String ls_url
Long ll_length,ll_rest
ls_url="https://api.douban.com/v2/book/isbn/"+as_isbn
String ls_data,ls_response
OleObject lole_tenyear //宣告ole
lole_tenyear = CREATE oleobject
lole_tenyear.ConnectToNewObject("Microsoft.XMLHttp") //幫頂XMLhttp組件,我測過xp和win7都自帶,不需安裝任何輔助軟體如.net環境
lole_tenyear.open ("POST",ls_url, false) //引數解釋請看:
//http://blog.csdn.net/ldl22847/article/details/9662927
lole_tenyear.setRequestHeader ("Content-type", "application/x-www-form-urlencoded")
lole_tenyear.setRequestHeader('Content-Length',string(len(ls_data)))
//lole_tenyear.send (' ')
lole_tenyear.send (ls_data) //關鍵是這一步:如果你的https的環境沒有安裝瀏覽器的認證的根證書,一定會報錯退出,如果你申請安裝了verisign等權威機構發的根證書,用ie打開上面的https,就不會報紅色警告(問你是不是繼續)。但pb不會提示你是不是繼續,直接報錯退出。verisign的證書一年好像要1萬-10萬元的服務費。在這里你如果想測驗一下,你可以把上面的https地址換成https://www.alipay.com/ (支付寶的),不會報錯的。注意:這里的證書及驗證都是單向驗證,不是雙向的。
do While lole_tenyear.readyState <> 4 // ' 查詢狀態,延時
yield()
Loop
ls_response = lole_tenyear.responseText //回傳結果
//messagebox(ls_url,ls_response)
IF lole_tenyear.Status >= 300 THEN
// MessageBox ("HTTP request failed:", lole_tenyear.StatusText ,Exclamation!,OK!)
END IF
destroy lole_tenyear
return ls_response
uj5u.com熱心網友回復:
打開下IE看是否可以上網,,如是IE脫機了也會提示這個轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/6909.html
標籤:Web 應用
下一篇:pb12.5 開發webservice 總是自動添加<string xmlns="http://tempurl.org">
