3

コードが壊れた理由がわかりません。parseURL最初は、を与えるからだと思い[]ましたrequestHeaders。さて、多分私はそれにresquestHeadersがどうあるべきかを伝える必要があります。requestHeadersさて、私は私の古い、動作しているコードから生成されたものを調べました。それも、を返します[]。だから今、私はアイデアがありません。以下は、古い動作コードであり、GHCiで新しいコンジットベースのライブラリを使用して試したものに従います。

captureRawJson :: IO Response
captureRawJson = do
    nManager <- newManager
    jRequest <- parseUrl url :: (IO (Request IO))
    jResponse <- httpLbsRedirect jRequest nManager
    closeManager nManager
    return jResponse

上記は正常に機能します。これが、移行中に実行しようとしたことと、表示されるエラーです。

Prelude Network.HTTP.Conduit> nManager <- newManager def
Prelude Network.HTTP.Conduit> jRequest <- parseUrl "https://10.69.69.1/cgi-bin/qaLinkEditor.cgi?json=1" :: (IO (Request IO))
Prelude Network.HTTP.Conduit> let response = httpLbs jRequest nManager
Prelude Network.HTTP.Conduit Control.Monad.Trans.Resource> runResourceT response
*** Exception: error unexpected packet: Handshake [ServerHelloDone]

ご覧のとおり、これはほぼ同じコードです。ですから、何が変わったのか、そして何をもっと詳しく見ていくべきかについてのフィードバックをお願いします。また、クライアントコードとサーバーの間で送受信されるhttpヘッダーを確認するにはどうすればよいですか?

4

1 に答える 1

2

これは、tls パッケージのいくつかの変更で解決されたと思います。http-conduit 1.2.5 をリリースしました。問題が解決するかどうかを確認してください。

それでもエラー メッセージが表示される場合は、SSL 証明書が接続先のホスト名と一致しない可能性があります。

于 2012-02-08T06:13:20.117 に答える