问题标签 [wreq]
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 - 在 cygwin 中安装软件包 wreq 时出错
我试图在 cygwin 中安装 wreq 包并收到以下错误:
我也尝试在 powershell 中执行此操作,但结果相同。你能建议如何解决吗?
haskell - Haskell:如何测试使用 wreq 的 Spock 应用程序?
我使用Spock和wreq在 Haskell 中编写了一个非常简单的应用程序。我想写一些测试,但我不知道该怎么做。
该应用程序所做的只是向另一台服务器发出 HTTP 请求,并将 JSON 响应转换为对人类友好的消息。如果有帮助,这里是代码。我想编写一个测试,在给定某个 JSON 响应的情况下断言人性化消息是正确的。
在 Ruby 中,我会模拟 HTTP 客户端,在这种情况下wreq
,以控制我得到的 JSON 响应,但我不确定在 Haskell 中如何,甚至是否可以做到这一点。
根据我从研究中收集的信息,听起来类型类约束类型变量是要走的路,这对我来说就像依赖注入,但我不确定如何在 Spock 和wreq。
Spock 测试教程描述了如何在听起来很棒的水平上测试Spock IO Application
。我不确定的部分是如何“注入”模拟 HTTP 客户端来控制 JSON 响应。
任何帮助表示赞赏!
haskell - 从两个 wreq API 调用创建 Aeson 模型
我正在寻找解决一个问题,即我从 HTTP 调用构建一些数据,然后基于该数据进行另一个 HTTP 调用,并使用来自第二个调用的信息来丰富原始数据。
我的代码通过 wreq 将 Spotify 最近播放的 API 调用 (JSON) 作为 ByteString 并返回我完全形成的“RecentlyPlayed”数据类型。
但是,为了在 Spotify API 中获取曲目的流派,需要对其艺术家端点进行第二次 HTTP 调用,我不太确定如何修改我的 Track 数据类型以在其中添加“流派”字段我稍后会填充,我也不确定以后如何实际填充它,显然我需要遍历我的原始数据结构,拉出艺术家 ID,调用新服务器 - 但我不确定如何添加这个原始数据类型的附加数据。
(https://github.com/imjacobclark/Recify/blob/master/src/Types/RecentlyPlayed.hs)
这对于单个 API 调用非常有效,它的用法可以在这里看到:
(https://github.com/imjacobclark/Recify/blob/master/src/Recify.hs#L53-L55)
(https://github.com/imjacobclark/Recify/blob/master/src/Clients/Spotify/RecentlyPlayed.hs)
我希望能够调用第一个 API,构造我的数据类型,调用第二个 API,然后使用第二个 HTTP 调用返回的数据丰富第一个数据类型。
haskell - wreq 如何将文件上传与发布表单字段结合起来?
如何Part
与[(ByteString, ByteString)]
(普通表单输入)结合?
它们都是Postable
类型类http://hackage.haskell.org/package/wreq-0.5.3.2/docs/Network-Wreq-Types.html#t:Postable的一部分
我猜猜这是可以用镜头组合器完成的事情吗?
下面是我发送两个请求的完整代码 - 一个带有发布表单字段 - 另一个带有文件上传。
应用程序.cabal
src/Test.hs
http - 如何使用 wreq 发送 PUT 请求?
以下是我希望能够发送 PUT 请求的方式wreq
:
但是,这会产生以下错误:
从错误消息中可以明显看出
wreq
,尽管我使用了该put
方法,但似乎正在发送 POST 请求。
我怎样才能wreq
真正发送 PUT 请求?
rest - postWith 是在切换我请求的 Content-Type 吗?
无论我输入什么值作为请求的“Content-Type”,我发出的传出请求似乎都会用“application/x-www-form-urlencoded”替换它。我试图命中的应用程序需要“application/json”。基本上,我的代码如下。
我的问题是我不断Status {statusCode = 415, statusMessage = "Unsupported Media Type"}
从这个端点返回,我相信这是因为我发送的请求似乎覆盖了我的标头中的“Content-Type”。我曾尝试使用“application/json”和“text/plain”,但我得到的响应总是向我表明,我发送的所有标头看起来都符合预期,除了 Content-Type 总是变成“application/x-www” -form-urlencoded”。
如何确保 wreq 在我的请求标头中保留“Content-Type: application/json”?
编辑:我正在通过 API 服务器在回复我时告诉我的内容来确定我的原始请求中的标头。
haskell - Haskell Wreq - 无法匹配预期类型“GHC.Exts.Item a0”
运行以下代码时遇到类型错误:
错误如下:
当我检查:=
ghci 中的类型时,我看到了正确的类型:
我想知道的是为什么GHC.Exts.Item
在我运行编译器时会显示为期望类型。我只从Network.Wreq
. 有什么想法可能会在这里发生吗?