[英]http-conduit browser usage
我正在嘗試使用HTTPS從站點抓取數據。 我設法成功使用Network.HTTP.Conduit發出了基本請求(發布憑據等),但是未能從響應頭(Set-Cookie)中提取cookie信息。 看起來http-conduit擁有自己的 cookie處理機制 ,我無法理解。
Network.HTTP.Conduit.Browser似乎可以自動處理Cookie(這對我來說很好),但是由於缺少文檔 ,我無法使它正常工作。
可以讓有更多使用http-conduit瀏覽器模塊經驗的人向我展示如何:
在我看來,與Network.HTTP.Conduit相比,Network.HTTP.Conduit.Browser的抽象級別更適合我的應用程序,因此即使我可以使用后者手動處理Cookie,我也要進行切換。
我從來沒有使用過瀏覽器,但是我曾經使用過http-conduit。 我閱讀了源代碼來回答這些問題,如果出錯,我深表歉意。
做同樣的事情。 使用正確的managerCheckCerts
創建Manager
,將其傳遞給browse :: Manager -> BrowserAction a -> ResourceT IO a
。
makeRequest :: Request IO -> BrowserAction (Response (Source IO BS.ByteString))
接受一個Request IO
; 像以前一樣使用urlEncodedBody
創建一個在正文中帶有參數的POST請求,並將其傳遞給makeRequest
。 我相信將redirectCount
設置為0以禁用重定向。
我相信您只需要使用getCookieJar :: BrowserAction CookieJar
; BrowserAction
來自getBrowserState :: BrowserAction BrowserState
。
http-conduit在瀏覽器模塊之外管理cookie的方式不是。 Cookie在HTTP響應中返回; 您可以做的是解析響應,並將Cookie存儲在Cookie罐中。 實際上這就是瀏覽器的全部功能。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.