として
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
機能を使用することにより:wreq
はHTTP-コンジット(HTTPクライアント)のような表面の下で同じHTTPエンジンを使用しています
{-# 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
注ことを。私の推測では、もともとHTTPクライアント自体の機能の1つを使用しようとしていたのですが、そのコードがどのように見えるかわかりません。
通知するのは難しい - おそらくそれらのメッセージはJavascriptで実行されていると思われるでしょうか?ブラウザで同じWebページを開き、ソースが異なるかどうかを調べます。 Webサーバーは、すべてのユーザーエージェントに対して別のページを生成することもできます(これは非常に悪いことです)。 – chi
@chi Node.jsの 'request'ライブラリを使ってサイトをテストしたところうまくいきました。だから私は、HTTPドライバNetwork.HTTPが使用していると仮定します。おそらく私はNetwork.Wreqを試すことができますが、ドキュメンテーションはレンズに基づいていますが、私はまだカバーしていません! –
@chi Wreqにとってレンズの基本的な理解は非常に非常に基本的なものであり、私の解決策を見つけました:) –