'************************************************ * ******************************
'関数(パブリック)
'名前: リモートフェッチ関数
'機能: XMLHTTP を使用してリモートでデータをキャプチャします
'パラメータ: sMethod --- 送信メソッド
' sUrl ------ ターゲットアドレス
' iMode ----- 返されるコンテンツ タイプ: 0 はバイナリ、1 はテキスト、2 は Cookie、3 はファイル ヘッダー情報
' sBase ----- エンコーディングを設定します
' sReferer -- ソースを設定します
' sCookie --- Cookie を設定します
' sLanguage - 言語を設定します
' sData ----- 送信するパラメータを設定します
' sContent -- 受信データ型を設定します
' sAgent ---- ブラウザを設定
' sEncoding - gzip 圧縮を設定します
' sAccept --- 文書タイプを設定します
'************************************************ * ******************************
パブリック関数 SenFe_StealData(sMethod、sUrl、iMode、sBase、sReferer、sCookie、sLanguage、sData、sContent、sAgent、sEncoding、sAccept)
Dim oXmlHttp : oXmlHttp = Server.CreateObject(Msxml2.ServerXMLHTTP) を設定します。
oXmlHttp を使用する
sMethod= の場合、sMethod = GET
.Open sMethod、sUrl、False
'ページソースを設定
sReferer<>の場合
.SetRequestHeader リファラー、sReferer
それ以外
.SetRequestHeader リファラー、Split(sUrl, /)(2)
終了の場合
If sCookie<> then .SetRequestHeader Cookie, sCookie ' Cookie を設定します
If sLanguage<> then .SetRequestHeader Accept-Language, sLanguage '言語を設定します
If sData<> then .SetRequestHeader Content-Length, Len(sData) 'データ長を設定
If sContent<> then .SetRequestHeader Content-Type, sContent '受け入れられるデータ型を設定します
If sAgent<> then .SetRequestHeader User-Agent, sAgent 'ブラウザを設定します
If sEncoding<> then .SetRequestHeader Accept-Encoding, sEncoding ' gzip 圧縮を設定します
If sAccept<> then .SetRequestHeader Accept, sAccept 'ドキュメント タイプ
.sData の送信
'while .ReadyState <> 4
' .WaitForResponse 1000
ウェンド
.ReadyState<>4 または .Status<>200 の場合
SenFe_StealData = データを取得できません!
終了関数
終了の場合
iMode のケースを選択してください
ケース 0 SenFe_StealData = .ResponseBody
ケース1
sBase<>の場合
SenFe_StealData = BytesToBstr(.ResponseBody, sBase)
それ以外
SenFe_StealData = .ResponseText
終了の場合
ケース 2 SenFe_StealData = .getResponseHeader(Set-Cookie)
それ以外の場合 SenFe_StealData = .getAllResponseHeaders()
エンドセレクト
で終わる
終了機能
'************************************************ * ******************************
'機能: エンコード変換
'パラメータ: sBody - 変換されるコンテンツ
' sCset - エンコーディング
'************************************************ * ******************************
関数 BytesToBstr(sBody, sCset)
oAdos で
.Type = 1
.モード = 3
。開ける
.SBody の書き込み
.位置 = 0
.Type = 2
.Charset = sCset
BytesToBstr = .ReadText
。近い
で終わる
終了機能