问题标签 [http-conduit]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
haskell - 什么是点管道“。|” Haskell 中的运算符?
我明白 ”。” (点)作为函数组合。我明白了“|” (管道)作为“或”保护介绍语法(从这里 ),但我看到一个使用“。|”的http-conduits的答案 以我不理解的方式使用此运算符。
我发现的其他管道参考资料,例如:
- https://docs.google.com/presentation/d/1RBefOCZ7AKOo4f1yiF4mtKPAT3l5vY9ky2SR02O4Vvg/edit#slide=id.g3c22e35a9_0205
- http://www.yesodweb.com/blog/2014/03/network-conduit-async
...建议使用 "$$"、"$="、"=$="、"=$" 等语法来组合数据流中的管道。
我应该怎么称呼这个“。|” 这个运算符以及它是如何工作的?
可以预见的是,谷歌搜索“.| haskell”或“'dot pipe' haskell”或“'dot pipe' haskell operator channels”并不是很成功。
haskell - Haskell HTTP 响应中 ByteStrings 的笨拙的类型签名
我正在试验 http-conduit 库并有这个简单的例子:
我从这篇文章中了解到,我应该更喜欢作为 ByteString 的响应而不是 [Char] 或 String。我认为 OverloadedStrings 杂注可能会减少这个问题,但相对于我的输出类型似乎没有改变。
该函数工作正常,并且尽职尽责地为 SO 的主页打印出一个简单的 http 响应,但该类型签名看起来真的很难看:
而且我不得不说,我从互联网示例中很少看到类似的东西(我们有比椭圆 Java 导入更多的点,伙计)。那正确吗?如果我想返回一个响应然后开始解析它,比如使用 HXT 或 tagoup 或 attoparsec,这是正确的方法或类型签名吗?
例如,我注意到,当我开始添加接受参数的能力时,这变得更加丑陋,例如提供不同的 URL:
这似乎不健康。我应该如何理解如何正确构建它?
haskell - 为什么不打印强制整个惰性 IO 值?
我正在使用http-client教程使用 TLS 连接获取响应正文。既然我可以观察到print
由 调用withResponse
,为什么不print
强制对以下片段中的输出进行整个响应?
我需要写这个:
我要打印的正文是一个懒惰的 ByteString。我仍然不确定我是否应该期望print
打印整个值。
wsdl - 在 CXF 动态客户端上加载 WSDL 之前访问 HttpConduit
在为我的动态客户端从 https URL 加载 WSDL 之前,我需要在HttpConduit上设置适当的配置以避免所有 SSL 错误。根据文档,我们可以对管道进行硬编码,但不确定是否以编程方式进行。Client
有没有办法在创建对象之前获取 HttpConduit DynamicClientFactory
?
json - FromJSON [对象] 实现
我有一个项目需要解析 JSON。我得到一个对象列表,但它都包含在“数据”键中。目前我有一个小目标可以帮助我:
然后我只使用“sl”从结果中获取我的实际列表。
它工作得很好,但我想我们都会同意它很丑。我想必须有一种更简单的方法来直接解析 [Storage],以某种方式告诉 parseJSON 只是从内部数据开始。哦,我正在使用来自 http-conduit 的 httpJSONEither,但如果没有办法做到这一点,我想我可以改变它。
编辑:这是存储:
编辑 2: 我要解析的内容是这样的:
希望这会更清楚。我正在使用那个丑陋的“StorageList”对象来摆脱包装所有内容的数据键,它可以工作,但我确信必须有更好的方法来处理它。
haskell - 为什么 httpJSON 失败,而 httpLBS 成功?
此功能(使用 httpLBS)有效:
但是这个函数(使用 httpJSON)没有:
它抛出错误:
haskell - 当我并行运行大量 http 请求时,我得到“没有这样的协议名称:tcp”
编码
投掷
在大约 1k 个请求之后。
haskell - 使用 HTTP-Conduit 时出现 Haskell 类型错误
我正在为 Yesod 应用程序进行 OAuth2 身份验证,但我遇到了一个我真的不明白的类型错误。代码现在坏了,我扔了几个:: IO ()
's 和s 来帮助我隔离类型错误,但相关代码是:undefined
请注意,我专门将httpLbs (urlEnc...) manager
操作的类型设置为IO (Response ByteString)
使用ScopedTypeVariables
扩展名。此外,这行代码应该是一个 IO 操作,因为它是在 IO 操作的顶层执行的。
事实上,我运行了一个 GHCi 会话并做了:
这证实了我的理解,httpLbs
应该产生一个MonadIO m => m (Response ByteString)
.
但这是我得到的错误:
为什么 GHC 专门m
用于Response
而不是IO
? 我如何解决它?
spring - How to configure CXF in Spring Boot setting disableCNCheck to true in HttpConduit TLSClientParameters
There is a Spring Boot application that use Camel cxf component declared in class annotaed with @Configuration and containing the next code:
How can HttpConduit be overwritten to set disableCNCheck to true?
Y tried this one with no success:
This is the exception:
haskell - 记录 http-conduit 的所有请求和响应
我写这个ManagerSettings
来记录我的 http-conduit 应用程序的所有请求和响应。(顺便说一句,我正在导入ClassyPrelude
)。
但是,它不起作用 - 当我使用它时,应用程序挂起并试图在打印第一个请求和第一个响应后消耗机器中的所有 RAM,这表明某种无限循环。
此外,请求被打印两次。
我之前做过类似的尝试,但没有修改r
. 那失败了,因为在我已经完全阅读了响应之后,没有更多的响应数据可以读取。
如果我将其替换为tlsManagerSettings
,则http-conduit
再次工作。
我的应用程序正在使用 libstackexchange,我已对其进行了修改以允许ManagerSettings
对其进行自定义。我正在使用 http-conduit 版本 2.2.4。
如何诊断问题?我该如何解决?