91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

时尚| 景德镇市| 体育| 汝阳县| 晋城| 宁晋县| 阳谷县| 庆阳市| 湖南省| 滁州市| 大安市| 上栗县| 宁乡县| 巴楚县| 吴江市| 通河县| 金坛市| 太康县| 周口市| 临漳县| 南昌市| 东丽区| 谷城县| 台南县| 莱阳市| 应用必备| 吉安市| 富平县| 获嘉县| 东乌珠穆沁旗| 容城县| 江山市| 天全县| 丁青县| 宁陕县| 晋宁县| 永德县| 台中市| 祥云县| 监利县| 凤阳县|