此代碼不編譯爲
甲HTTPS兼容請求是一樣簡單。即使加入了LAZ
導入,Network.HTTP.Simple
模塊也不提供simpleHttp
功能。你可以用httpLBS
做到這一點:
{-# LANGUAGE OverloadedStrings #-}
import Network.HTTP.Simple
import qualified Data.ByteString.Lazy as LAZ
makeRequest :: IO LAZ.ByteString
makeRequest = do
response <- httpLBS "https://www.example.com"
return (getResponseBody response)
main :: IO()
main = makeRequest >>= LAZ.putStr
,或者使用從Network.HTTP.Conduit
的simpleHttp
功能:
{-# LANGUAGE OverloadedStrings #-}
import Network.HTTP.Conduit
import qualified Data.ByteString.Lazy as LAZ
makeRequest :: IO LAZ.ByteString
makeRequest = simpleHttp "https://www.example.com"
main :: IO()
main = makeRequest >>= LAZ.putStr
注意wreq
使用相同的HTTP引擎表面爲http-管道(HTTP客戶端)下。我的猜測是,你最初嘗試使用http-client本身的一個函數,但我不確定那些代碼會是什麼樣子。
很難說 - 也許這些消息應該被Javascript隱藏,它運行嗎?嘗試在瀏覽器中打開相同的網頁並檢查源代碼,看看它是否有所不同。 Web服務器也可能爲每個用戶代理生成一個不同的頁面(如果是這種情況,這非常糟糕)。 – chi
@chi我在Node.js中使用'request'庫測試了這個站點,它工作正常。所以我認爲它與網絡。HTTP正在使用的http驅動程序。也許我可以嘗試Network.Wreq,但文檔是基於鏡頭',我還沒有涉及! –
@chi原來對於Wreq只需要非常非常基本的鏡頭理解,而且我找到了我的解決方案:) –