问题标签 [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.

0 投票
1 回答
239 浏览

haskell - 在 cygwin 中安装软件包 wreq 时出错

我试图在 cygwin 中安装 wreq 包并收到以下错误:

我也尝试在 powershell 中执行此操作,但结果相同。你能建议如何解决吗?

0 投票
1 回答
215 浏览

haskell - Haskell:如何测试使用 wreq 的 Spock 应用程序?

我使用Spockwreq在 Haskell 中编写了一个非常简单的应用程序。我想写一些测试,但我不知道该怎么做。

该应用程序所做的只是向另一台服务器发出 HTTP 请求,并将 JSON 响应转换为对人类友好的消息。如果有帮助,这里是代码。我想编写一个测试,在给定某个 JSON 响应的情况下断言人性化消息是正确的。

在 Ruby 中,我会模拟 HTTP 客户端,在这种情况下wreq,以控制我得到的 JSON 响应,但我不确定在 Haskell 中如何,甚至是否可以做到这一点。

根据我从研究中收集的信息,听起来类型类约束类型变量是要走的路,这对我来说就像依赖注入,但我不确定如何在 Spock 和wreq。

Spock 测试教程描述了如何在听起来很棒的水平上测试Spock IO Application。我不确定的部分是如何“注入”模拟 HTTP 客户端来控制 JSON 响应。

任何帮助表示赞赏!

0 投票
1 回答
68 浏览

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 调用返回的数据丰富第一个数据类型。

0 投票
1 回答
87 浏览

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

0 投票
1 回答
82 浏览

http - 如何使用 wreq 发送 PUT 请求?

以下是我希望能够发送 PUT 请求的方式wreq

但是,这会产生以下错误:

从错误消息中可以明显看出 wreq,尽管我使用了该put方法,但似乎正在发送 POST 请求。

我怎样才能wreq真正发送 PUT 请求?

0 投票
1 回答
102 浏览

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 服务器在回复我时告诉我的内容来确定我的原始请求中的标头。

0 投票
1 回答
56 浏览

haskell - 如何使用 wreq 为请求设置 HTTP 标头?

我看到有一个可能的函数可以getWith传递一个Option值。

然而,查找Option类型似乎在黑线鳕中显示的信息很少:在此处输入图像描述

我该如何设置这些?

0 投票
2 回答
79 浏览

haskell - Haskell Wreq - 无法匹配预期类型“GHC.Exts.Item a0”

运行以下代码时遇到类型错误:

错误如下:

当我检查:=ghci 中的类型时,我看到了正确的类型:

我想知道的是为什么GHC.Exts.Item在我运行编译器时会显示为期望类型。我只从Network.Wreq. 有什么想法可能会在这里发生吗?