易语言客户端请求http_易语言HTTP客户端源码
.版本 2
.程序集 HTTP客戶端, , 公開, 提供HTTP客戶端功能的封裝。支持同步 異步方式從服務器獲取數據。
.程序集變量 __回調函數, 子程序指針
.程序集變量 對象, 對象
.程序集變量 事件對象方法集, 子程序指針, , “8”
.程序集變量 事件對象結構, 對象附加數據
.程序集變量 事件對象指針, 整數型
.程序集變量 e, 對象
.程序集變量 原殼數據, 整數型
.程序集變量 __網絡地址, 文本型
.子程序 _初始化, , , 當基于本類的對象被創建后,此方法會被自動調用
.局部變量 pthis, 整數型
置入代碼 ({ 139, 69, 8, 139, 0, 137, 69, 252 })
子程序指針_重置 (__回調函數)
__網絡地址 = “”
事件對象方法集 [1] = &QueryInterface
事件對象方法集 [2] = &AddRef
事件對象方法集 [3] = &Release
事件對象方法集 [4] = &GetTypeInfoCount
事件對象方法集 [5] = &GetTypeInfo
事件對象方法集 [6] = &GetIDsOfNames
事件對象方法集 [7] = &Invoke ‘ 從這里引出事件
事件對象結構.ppv = 子程序指針_地址 (事件對象方法集 [1])
事件對象結構.成員 = pthis
事件對象指針 = 整數_地址 (事件對象結構.ppv)
‘ 借殼
賦值整數_API (原殼數據, e, 4)
賦值對象_API (e, 事件對象指針, 4)
CoInitialize (0)
.子程序 _銷毀, , , 當基于本類的對象被銷毀前,此方法會被自動調用
‘ 還殼
賦值對象_API (e, 原殼數據, 4)
CoUninitialize ()
.子程序 狀態改變, , 公開, 如果采用繼承模式。覆蓋這個方法。請求完成后。這個方法會被系統調用。
.局部變量 a, 整數型
a = 對象.讀數值屬性 (“readyState”, )
置入代碼 ({ 139, 93, 8, 139, 27, 131, 195, 4, 139, 19, 133, 210, 116, 5, 255, 117, 252, 255, 210 })
.子程序 打開, , 公開
.參數 方法, 文本型, 參考, POST 或者 GET
.參數 URL, 文本型, 參考
.參數 異步, 邏輯型, 可空, 默認為假
.參數 回調函數, 子程序指針, 可空, 如果為空。則不處理返回結果。如果你通過繼承處理。則覆蓋基類的方法原型為 狀態改變()
.如果真 (假 = 對象.創建 (“WinHttp.WinHttpRequest.5.1”, ))
.如果真 (假 = 對象.創建 (“MSXML2.XMLHTTP.4.0”, ))
.如果真 (假 = 對象.創建 (“MSXML2.XMLHTTP.3.0”, ))
.如果真 (假 = 對象.創建 (“MSXML2.XMLHTTP”, ))
.如果真 (假 = 對象.創建 (“Microsoft.XMLHTTP”, ))
輸出調試文本 (“錯誤:創建XMLHTTP對象失敗?!?
返回 ()
.如果真結束
.如果真結束
.如果真結束
.如果真結束
.如果真結束
.如果真 (異步) ‘ 異步則出發事件
對象.寫屬性 (“onreadystatechange”, e)
.如果真結束
.如果 (異步 且 假 = 是否為空 (回調函數))
__回調函數 = 回調函數
.否則
子程序指針_重置 (__回調函數)
.如果結束
對象.方法 (“Open”, 方法, URL, 異步)
對象.方法 (“setRequestHeader”, “Accept-Language”, “zh-cn”)
‘ 對象.方法 (“setRequestHeader”, “Accept-Encoding”, “gzip, deflate”)
.子程序 置請求協議頭, , 公開, 注意:在打開()方法后才能設置方能有效。
.參數 名字, 文本型, 參考
.參數 值, 文本型, 參考
.如果真 (假 = 對象.是否為空 ())
對象.方法 (“setRequestHeader”, 名字, 值)
.如果真結束
.子程序 發送, , 公開
.參數 數據, 文本型, 參考 可空
.如果 (假 = 是否為空 (數據))
對象.方法 (“send”, 數據)
.否則
對象.方法 (“send”, )
.如果結束
.子程序 取文本, 文本型, 公開
.如果真 (假 = 對象.是否為空 ())
返回 (對象.讀文本屬性 (“responseText”, ))
.如果真結束
返回 (“”)
.子程序 取字節集, 字節集, 公開
.如果真 (假 = 對象.是否為空 ())
返回 (對象.讀屬性 (“responseBody”, ).取字節集 ())
.如果真結束
返回 ({ })
.子程序 返回狀態, 整數型, 公開, 返回狀態 200 成功
返回 (對象.讀數值屬性 (“status”, ))
.子程序 撤消, , 公開, 失敗返回空文本。
.如果真 (假 = 對象.是否為空 ())
對象.方法 (“abortn ”, )
.如果真結束
.子程序 取所有返回頭信息, 文本型, 公開, 失敗返回空文本。
.如果真 (假 = 對象.是否為空 ())
返回 (對象.文本方法 (“getAllResponseHeaders”, ))
.如果真結束
返回 (“”)
.子程序 取返回頭信息, 文本型, 公開
.參數 名字, 文本型, 參考
.如果真 (假 = 對象.是否為空 ())
返回 (對象.文本方法 (“getResponseHeader”, 名字))
.如果真結束
返回 (“”)
.子程序 取進度, 整數型, 公開, 0:未初始化 1:初始化(尚未發送) 2:發送數據 3:數據發送中 4:完成
.如果真 (假 = 對象.是否為空 ())
返回 (對象.讀數值屬性 (“readyState”, ))
.如果真結束
返回 (0)
.子程序 等待完成, 邏輯型, 公開
.參數 超時, 整數型
返回 (對象.邏輯方法 (“WaitForResponse”, 超時))
作者:GBB(龔辟愚)
完整源碼下載:
百度網盤下載
分享到:
總結
以上是生活随笔為你收集整理的易语言客户端请求http_易语言HTTP客户端源码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 文件打开方式关联错误解决方法
- 下一篇: 大学“电路分析基础”试题合集第五章