【问题标题】:Exception POSTing multipart form with http-conduit使用 http-conduit 发布多部分表单的异常
【发布时间】:2014-04-29 14:44:59
【问题描述】:

我正在尝试向一个内部网站发布一个多部分表单请求,该网站应该回复一个 XML 响应。使用我在 Python 中的另一个简单脚本和 requests 库,一切正常,但是,使用 http-conduit 我不断收到异常 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>

【问题讨论】:

    标签: haskell http-conduit


    【解决方案1】:

    这听起来像是服务器返回了格式错误的 100-continue 响应。但是这里没有足够的信息来正确调试,最好在 Github 问题中处理。

    【讨论】:

    • 我会打开一个。谢谢。
    猜你喜欢
    • 2014-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-07
    • 1970-01-01
    • 2016-10-29
    • 2014-08-06
    相关资源
    最近更新 更多