ユーザー ID とパスワードを使用して、安全な URL (https) からデータを取得する必要があります。どうすればそれを実装できますか。
以下のコマンドを使用して、通常の URL からデータにアクセスできます
li_rc = linet_main.GetURL("http://www.webservicex.net/WeatherForecast.asmx?WSDL", luo_data)
前もってありがとう、ラメッシュ。
ユーザー ID とパスワードを使用して、安全な URL (https) からデータを取得する必要があります。どうすればそれを実装できますか。
以下のコマンドを使用して、通常の URL からデータにアクセスできます
li_rc = linet_main.GetURL("http://www.webservicex.net/WeatherForecast.asmx?WSDL", luo_data)
前もってありがとう、ラメッシュ。
私が最も簡単に見つけたアプローチは、OLEを介してXMLHttpオブジェクトを使用することです。これは、暗号化されたGoogleページをヒットするためにそれを使用するPB 10.5からエクスポートされた関数です(ページがそれらを受け入れていないため、投稿部分に404がありますが、結果は例として有効です)。
$PBExportHeader$f_test_xmlhttps.srf
global type f_test_xmlhttps from function_object
end type
forward prototypes
global subroutine f_test_xmlhttps ()
end prototypes
global subroutine f_test_xmlhttps ();//First download and install the latest XMLHttp package
//(this link goes to the one listed in the connectToNewObject call
//http://www.microsoft.com/downloads/details.aspx?familyid=3144b72b-b4f2-46da-b4b6-c5d7485f2b42&displaylang=en#filelist
//XMLHttp object method summary
//http://msdn.microsoft.com/library/default.asp?url=/library/en-us/xmlsdk/html/xmmscxmldommethods.asp
String ls_get_url, ls_post_url
String ls_post_variables, ls_response
String ls_response_text, ls_status_text
long ll_status_code
OleObject loo_xmlhttp
//include parameters on the URL here for get parameters
ls_get_url = "https://encrypted.google.com/"
try
//Create an instance of our COM object
loo_xmlhttp = CREATE oleobject
loo_xmlhttp.ConnectToNewObject("Msxml2.XMLHTTP.4.0")
//First lets do a GET request
//All request parameters should be included in the URL
loo_xmlhttp.open ("GET",ls_get_url, false)
loo_xmlhttp.send()
//Get our response
ls_status_text = loo_xmlhttp.StatusText
ll_status_code = loo_xmlhttp.Status
//Check HTTP Response code for errors
//http://kbs.cs.tu-berlin.de/~jutta/ht/responses.html
if ll_status_code >= 300 then
MessageBox("HTTP GET Request Failed", ls_response_text)
else
//Get the response we received from the web server
ls_response_text = loo_xmlhttp.ResponseText
MessageBox("GET Request Succeeded", ls_response_text)
end if
//Lets do a POST now, We would pass a String
//in the send() call that contains the post data in the
//format name1=value1&name2=value2&...
ls_post_url = "https://encrypted.google.com/"
ls_post_variables = ""
loo_xmlhttp.open ("POST",ls_post_url, false)
loo_xmlhttp.send(ls_post_variables)
//Get our response
ls_status_text = loo_xmlhttp.StatusText
ll_status_code = loo_xmlhttp.Status
//Check HTTP Response code for errors
//http://kbs.cs.tu-berlin.de/~jutta/ht/responses.html
if ll_status_code >= 300 then
MessageBox("HTTP POST Request Failed", ls_response_text)
else
//Get the response we received from the web server
ls_response_text = loo_xmlhttp.ResponseText
MessageBox("POST Request Succeeded", ls_response_text)
end if
//Done so cleanup
loo_xmlhttp.DisconnectObject()
catch (RuntimeError rte)
MessageBox("Error", "RuntimeError - " + rte.getMessage())
end try
end subroutine
それをf_test_xmlhttps.srfとして保存し、PowerBuilderのpblにインポートします。これはHTTPでも機能します。