目前需要向一個網站上下單,必須https+POST方式連接。PB的inet不支持HTTPS(錯誤碼 -5 Unsupported secure (HTTPS) connection attempted),所以肯定不能用。
如果有合法證書,那么可以用Ole物件Microsoft.XMLHttp來解決,可以看檔案:
http://blog.csdn.net/ldl22847/article/details/9662927
對此開發代碼:
OleObject lole_tenyear //宣告ole
lole_tenyear = CREATE oleobject
lole_tenyear.ConnectToNewObject("Microsoft.XMLHttp")
lole_tenyear.open ("POST",ls_url, false)
lole_tenyear.setRequestHeader ("Content-type", "application/x-www-form-urlencoded")
lole_tenyear.setRequestHeader('Content-Length',string(len(ls_data)))
lole_tenyear.send(ls_data) //對方不是合法證書,就崩潰
ls_response = lole_tenyear.responseText //回傳結果
IF lole_tenyear.Status >= 300 THEN
MessageBox ("HTTP request failed:", lole_tenyear.StatusText ,Exclamation!,OK!)
END IF
destroy lole_tenyear
可是,那個網站沒有合法證書,于是運行到“send(ls_data)”就崩潰了,原因就是證書不合法。那么還有什么辦法可以忽略證書不合法,正常執行下去呢?請教高手指導。
uj5u.com熱心網友回復:
你說的是指報了一個錯吧,好像是什么運行時錯誤,這應該不是證書的問題,是你訪問的資源不存在。uj5u.com熱心網友回復:
API或者用別的方式處理,OLE需要合法證書,這是MS要求的uj5u.com熱心網友回復:
不是那個資源不存在,只是因為那個資源的證書問題。uj5u.com熱心網友回復:
唉,就是不知道別的辦法啊。
uj5u.com熱心網友回復:
有,用VS寫個COM,然后PB呼叫,似乎只能這樣而已
uj5u.com熱心網友回復:
在lole_tenyear.open ("POST",ls_url, false) 后,增加一行代碼lole_tenyear.Option[4] = 13056
uj5u.com熱心網友回復:
在lole_tenyear.open ("POST",ls_url, false) 后,增加一行代碼
lole_tenyear.Option[4] = 13056
這句不行的,運行到此處會報錯:
---------------------------
PowerBuilder application execution error (R0036)
---------------------------
Application terminated.
Error: Name not found accessing external object property option at line 74 in ue_post_retstr_ansi event of object nvo_internet_main.
---------------------------
確定
---------------------------
在lole_tenyear 下沒有opiton這個屬性。
我還嘗試了 lole_tenyear.object.Option[4] = 13056 也不行,沒有object這個屬性。
很絕望啊。
uj5u.com熱心網友回復:
url和data提供一下,我模擬提交試試,以前用過類似的辦法,https通訊無壓力uj5u.com熱心網友回復:
https://blog.csdn.net/pcwe2002/article/details/103047572這個可以訪問
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/8521.html
標籤:控件與界面
上一篇:怎么編制一個能計算常用統計量的類
