问题标签 [haskell-warp]

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 回答
96 浏览

haskell - 将标准输入流式传输到 Wai.EventSource

我想使用text/event-stream. Network.Wai.EventSource看起来是个不错的选择。

我尝试使用此代码:

哪个(我认为)可以:

  • 将标准输入读取为惰性字节流
  • 将 ByteStream 拆分为行
  • 为所有行生成一个 ServerEvent(这感觉不对 - 大概应该有多个事件?)
  • 构建一个 WAI 应用程序IO ServerEvent
  • 将应用程序绑定到端口 1337

当我运行它(例如使用ping -c 5 example.com | stack exec test-exe)时,它不会响应,直到整个 stdin 被读取。

如何构建一个每次从标准输入读取一行时刷新 HTTP 连接的 Wai 应用程序?

0 投票
2 回答
576 浏览

haskell - 在 Haskell 的 Wai/Warp 中处理 POST 请求

我有一个 wai/warp 应用程序。如何处理发布请求?我有这个:

如何指定some_post_req必须是 POST?

0 投票
2 回答
157 浏览

haskell - 删除 Yesod/Warp 中的服务器响应标头

如何删除ServerYesod 中的 HTTP 响应标头?我找到了负责设置该标头的代码,但我不知道下一步该做什么。我知道我可以使用 将标头值替换为空字符串addHeader "Server" "",但我更愿意完全删除它。

0 投票
1 回答
50 浏览

haskell - 强制 Yesod 使用更新版本的 Warp

我使用 Stack 安装了 Yesod。它目前使用 Warp v3.2.11.1,但我希望它使用GitHub 上可用的最新版本(尚未发布)。我在我的文件中添加了以下内容stack.yaml

当我导入WarpApplication.hs并打印Warp版本时,我得到3.2.11.2,但是当我向我的服务器发出HTTP请求时,“Server”响应头是“Warp/3.2.11.1”,这意味着Yesod仍在使用旧版本的 Warp。如何强制 Yesod 使用较新的版本?

0 投票
1 回答
256 浏览

haskell - 如何在 Wai/Warp 中提供 images/css/js 文件夹?

我有这个简单的 Wai/Warp 应用程序

如何将文件夹“images”添加到路由中,以便任何图像我都可以将 index.html 中的任何图像称为“images/something.jpg”?我知道如何添加确切的路线,但在这里我需要添加整个文件夹。

0 投票
1 回答
280 浏览

haskell - 在 Hasekll Spock 中为静态资产或图像创建路由

我从其网站上获取了这个基本的 Spock 应用程序:

我有一个 html 页面,我可以像这样返回:

然而,一个 html 页面包含一些“img”标签。我如何需要创建一条路线才能解析图像?说,图像是文件夹“img”中的位置。

0 投票
2 回答
284 浏览

haskell - Spock 或 Wai/Warp 和 HTTPS

我有一个必须通过 HTTPS 访问的 Spock 网站。我该如何正确设置它?我认为它应该与 Wai/Warp 的方式相同,但仍然没有最新的信息。

0 投票
1 回答
330 浏览

javascript - Haskell WARP/WAI 服务器无法响应来自 Android 嵌入式 WebView 的 AJAX 调用

更新 3当点击端点http://httpbin.org/user-agent时,请求成功返回。所以我的 Haskell Warp+WAI 应用服务器出了点问题。

有什么想法可以使服务器 API 调用适用于大多数浏览器,但不适用于 Android WebView?


澄清一下,我没有做任何跨域请求。我在这里看到数百个关于此的问题,但我的 AJAX 请求是针对 WebView 已加载的同一个域。

更新 2而不是 jQuery,我使用了更基本的xhr方法,如下所示:

仍然没有运气。xhr.responseText为空白,xhr.status0。

我想知道我的服务器是否有问题?我正在使用一个不寻常的服务器,即带有 WAI 的基于 Haskell 的 WARP。...但是为什么在其他所有浏览器中一切正常?


更新我做了一些调试,这是我在下面显示的 AJAX 调用中遇到的错误(一个基本的“服务器启动了吗?”GET 查询):

错误:NetworkError:无法在“XMLHttpRequest”上执行“发送”:无法加载“ http://www.example.net:2753/ping

不用说确切的 URL(我正在使用的真实 URL,而不是示例)在任何移动或桌面浏览器中都可以正常加载 - 只有 Android WebView 有这个问题!


我有一个简单的 Android 应用程序;只是一个加载远程 URL(不是本地资源)的 WebView。它工作正常,除了我所有的 AJAX 调用立即调用它们的错误回调。我正在三星 Galaxy S6 上进行测试,并将应用程序构建到 SDK 21。

这是我的第一个 AJAX 调用(失败)的样子;其他人使用相同的属性:

当然,transmitScore()fail()在范围内的其他地方定义。

这是我的 WebView 的设置:

任何想法出了什么问题?AJAX 调用在桌面 Chrome 和 Android Chrome 中运行良好。

我在这里看到了很多关于 AJAX 调用需要跨域权限的本地资源文件的问题,但这不是我的情况。所有资源都在远程服务器上,所有 AJAX 调用都转到它。

我也尝试将我的WebView设置为使用WebChromeClient,但没有任何区别。我相信现在它是WebViews的默认值。在 AJAX 调用中,我尝试了asynccache的四种可能组合;没有工作。

0 投票
1 回答
78 浏览

haskell - 使用 ResponseFile 时,如何强制 warp 使用 200 以外的状态码?

在尝试生成自定义 404 错误时,我尝试使用responseFile notFound404 [("Content-Type","text/html")] "404.html" Nothing. 但是,如果我的文件系统中存在“404.html”,Warp 会发送状态码为 200 的数据。

支持 wai 接口的服务器是否期望这种行为?如果是这样,为什么 responseFile 有一个状态参数?

0 投票
1 回答
850 浏览

haskell - 如何使 WARP 服务器终止?

我有一个 HTTP 应用程序服务器,在某些条件下处理某个请求时需要退出(以便由主管重新启动)。

给定一个主要的:

和一个处理程序,例如:

在提供 500 响应后,如何使流程结束?