1

XML 応答で応答する必要がある内部 Web サイトにマルチパート フォーム リクエストを POST しようとしています。要求ライブラリを使用して Python にある別の単純なスクリプトを使用すると、すべて正常に動作しますが、http コンジットを使用すると、ExpectedBlankAfter100Continue という例外を受け取り続けます。

内部 URL を「 https://httpbin.org/post 」に置き換えると、問題なく返信が返ってきます。

私が間違っていることはありますか?ライブラリのバグか、サイトが期待どおりに動作していないようです。後者の場合、http-conduit でこのチェックを無効にするオプションはありますか?

サンプルコード:

{-# LANGUAGE OverloadedStrings #-}

import Network
import Network.HTTP.Conduit
import Network.HTTP.Client.MultipartFormData
import qualified Data.ByteString.Lazy.Char8 as BL
import Data.Maybe (fromJust)
import System.Environment (getArgs)
import Control.Monad.IO.Class

main = do
    [x] <- getArgs
    --let url = "https://url.net/api.asp"
    let url = "https://httpbin.org/post"
    withSocketsDo $ withManager $ \m -> do
        r <- flip httpLbs m =<< (formDataBody (request $ BL.pack x) $ fromJust $ parseUrl url)
        liftIO $ BL.putStrLn $ responseBody r

request :: BL.ByteString -> [Part]
request x = <code removed>
4

1 に答える 1

1

これは、サーバーが不正な 100-continue 応答を返しているようです。しかし、これを適切にデバッグするには十分な情報がありません。Github の問題でこれを処理することをお勧めします。

于 2014-04-29T17:23:15.633 に答える