亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Brew IWeb的使用

發布時間:2020-04-14 09:19:04 來源:網絡 閱讀:505 作者:sunbxonline 欄目:開發技術

機緣巧合,在我認識brew一周后,需要在Brew上使用到Http,用到了IWeb接口,備述如下:

1.調用IWEB_GetResponse

先看代碼如下:

CALLBACK_Init(&pMe->IWebRespCallback, IWebResponseCallbackNotifyFunc, pMe);
IWEB_GetResponse(pMe->pIWeb,
           (pMe->pIWeb, &pMe->pIWebResp, &pMe->IWebRespCallback,
           url,      
           WEBOPT_HANDLERDATA, pMe,
           WEBOPT_STATUSHANDLER, IWebStatusNotify,
           WEBOPT_METHOD, "GET",
           WEBOPT_END));

IWEB_GetResponse接口需要一個AEECallback,所以需要調用CALLBACK_Init設置該callback,這個 CALLBACK_Init其實就是把后面兩個參數填充到callback這個結構中,它的后兩個參數,一個是具體的callback函數,一個是用于傳 給callback的userdata。

IWEB_GetResponse其實是個宏,前面幾個參數分別是
IWeb *pIWeb, 這個是IWeb實例
IWebResp **ppiwresp,這個是一個傳出參數,后面接收數據全靠這哥們
AEECallback *pcb,這個是剛才設置的回調

在后面幾個宏比較有意思,實際上,他們都是成對出現的,WEBOPT_XXX一系列的宏都用于指定HTTP的行為,有特點的含義

WEBOPT_HANDLERDATA 指定userdata,也就是指定它后面的參數是個userdata,用在后面callback中

WEBOPT_STATUSHANDLER,指定一個status callback,IWebStatusNotify就是這個callback

WEBOPT_METHOD,指定http的method

2.設置WebRespInfo

調用IWEB_GetResponse后,會有一個傳出參數IWebResp,在Brew認為ready的時候,會回調我們在IWEB_GetResponse中設置的callback,

在callback中調用IWEBRESP_GetInfo可以從中取出一個WebRespInfo,這個info很重要,因為它里面有一個ISource,有了這個ISource我們就可以異步得到數據了

上代碼:

WebRespInfo* pWebRespInfo = IWEBRESP_GetInfo(pMe->pIWebResp);
if(pWebRespInfo)
{
// the body of the response is contained in the ISOURCE within
pMe->pIWebSource = pWebRespInfo->pisMessage;
//AEECallback callback;
CALLBACK_Init(&(pMe->IWebSourceCallback), IWebSourceCallbackNotifyFunc, pMe);
ISource_Readable(pMe->pIWebSource, &(pMe->IWebSourceCallback));
}

可以看到,為了從ISource里取數據,有設置一個callback,IWebSourceCallbackNotifyFunc,在這個callback中,我們就可以調用ISource_Read獲取數據了

特別需要說明的是,ISource_Read調用完了以后,需要再次調用ISource_Readable,設置callback,否則下次callback就不會來了

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

漯河市| 松原市| 阿拉善盟| 应城市| 祁阳县| 原阳县| 高安市| 望江县| 普陀区| 子长县| 衡南县| 讷河市| 蒲城县| 永济市| 连城县| 河北省| 高邮市| 射洪县| 安泽县| 紫阳县| 雷州市| 新源县| 乡宁县| 林西县| 永嘉县| 固原市| 萝北县| 礼泉县| 万宁市| 泸定县| 镇巴县| 台南市| 宝兴县| 吴桥县| 赤峰市| 韶关市| 凤庆县| 宿州市| 隆昌县| 玉山县| 洛宁县|