注意:這裡是使用mongoose實現http服務,非資料庫使用。
最近由於需要使用http服務端,原先是使用的qt框架實現的http服務端,然後發現有些缺陷導致我不得不放棄這個框架,也不是完全放棄,只是http服務端這裡不再使用qt,用qt做高併發真的有點不好。
於是開始研究這個框架,根據mongoose 使用者手冊再加上一堆例項教程,基本上寫了乙個類 進行操作封裝(並不是完全的封裝了)
mohttp.**件主要是實現mongoose框架的基本 變數獲取。注意裡面有過載,主要是為了方便使用。
mohttp.cpp實現各類方法。使用方法:str = var; //如果資料正確
str = var; //如果資料正確
str = var; //如果資料正確
mo.cpp(或main.cpp)
static void ev_handler(struct mg_connection *nc, int ev, void *p) else //測試**
delete mo; //釋放變數
mg_serve_http(nc, hm, s_http_server_opts); //資料傳送
}看了幾個小時之後,差不多只能寫出這麼點東西了。然後我就一直在想。
但是你有沒有發現,如果瀏覽器要是傳送 ajax 資料過來,假定邏輯在 c++ **裡面,我應該如何設定返回的資料啊?
的確,這個類也沒有加入 返回的資料,這個問題我也一直在困擾。
難道mongoose 框架都沒有函式是可以設定資料在 body 的?百思不得其解的我於是去找了一下 mongoose 文件裡面的例子,發現了乙個cookie驗證的例子,原本我以為不管怎麼樣也會有設定資料的地方了,但是我驚奇的發現,是這樣的:
cookie_auth.c 例子檔案
static void set_session_cookie(struct mg_connection *nc,看完了之後我就跟納悶了,為什麼要直接輸出http頭?框架難道真的沒有提供類似的方法嗎?const struct session *s)
/* * if requested via get, serves the login page.
* if requested via post (form submission), checks password and logs user in.
*/static void login_handler(struct mg_connection *nc, int ev, void *p) else else
} else
nc->flags |= mg_f_send_and_close;
} (void) ev;
}
然後嘗試了各類函式:
也無果,這些函式會 輸出到 http 響應頭之前。
所以,是不是這個框架真的沒有 什麼設定返回的body 的函式呢?
總之目前只學到這裡,也許有什麼地方確實沒有了解。暫且先記錄下來,等知道了之後再續寫。
ios 利用NSStream模擬請求http資料
利用socket來模擬傳送http請求有以下幾步 1.先建立連線 設定連線的站點和埠號 self requesturldata www.tf56.com portno 80 此處建立連線的時候,我們給網路的入口和出口分別建立了乙個runloop,在此迴圈監聽資料流事件的到來。inputstream ...
docker下安裝nginx並實現https訪問
一 啟動容器 docker run detach name wx nginx p 443 443 p 80 80 v home nginx data usr share nginx html rw v home nginx config nginx.conf etc nginx nginx.conf...
在Apache下部署SSL證書實現HTTPS
https是以安全為目標的http通道,簡單講是http的安全版。谷歌已經制定了一項長遠的計畫,它的最終目標是將所有通過http協議呈現的網頁標為 不安全 對於站長來說,部署ssl證書來遷移到https是乙個現實和重要的問題,那麼,對於apache系統來說,如何部署ssl證書實現https協議呢?下...