Cowboy 框架:发送 HTTP 调用
Posted
技术标签:
【中文标题】Cowboy 框架:发送 HTTP 调用【英文标题】:Cowboy framework: Sending HTTP calls 【发布时间】:2021-11-13 22:38:56 【问题描述】:我想在 Cowboy 框架中发送一个 HTTP 请求,并读取响应的正文。是否有任何元级别的功能可以这样做,或者我应该去 Erlang 去做?从文档中我只看到“处理程序”。任何帮助表示赞赏。
【问题讨论】:
Cowboy
是一个 HTTP 服务器,发送 HTTP 请求需要一些 HTTP 客户端,例如 hackney
github.com/benoitc/hackney。
【参考方案1】:
cowboy 是一个 Erlang 服务器应用程序,但要发送 HTTP 请求,您可以使用 gun、shot 等库,或者您可以直接使用 Erlang 开箱即用的 httpc。
【讨论】:
【参考方案2】:Cowboy 是一个 Web 服务器,它不是一个框架。它不提供发送请求和接收响应的 HTTP 客户端功能。它的作用是相反的,它支持接收来自客户端的请求并响应它们。
为了发送请求,您需要 HTTP 客户端。在 Erlang 中,您可以从几个中进行选择。 httpc 是 Erlang 发行版的一部分。开发 Cowboy 的团队还创建了 Gun,一个异步 HTTP 客户端。还有其他几个。
【讨论】:
为什么cowboy不能归类为web框架? @Viacheslav Cowboy 直接相当于 Apache 或 nginx 等软件包。它们通常被描述为 Web 服务器而不是 Web 框架。框架通常支持模板、会话管理、数据库访问等功能。我认为将 Cowboy 称为 Web 框架会产生误导,Cowboy 作者说“cowboy - 适用于 Erlang/OTP 的小型、快速、现代 HTTP 服务器”。 我明白了。知道了。看起来牛仔 github 页面中的标签web-framework
误导了我。据我了解,cowboy 可以归类为 web 服务器 erlang 库或应用程序,因为模板可以由 erlydtl 完成,而数据库访问可以由其他类似的库和应用程序(如 epgsql、eredis 等)完成。然后当我们收集 cowboy/gun/epgsql/eredis 时我们可以说这是一个网络框架——对吗?
@Viacheslav 正确!以上是关于Cowboy 框架:发送 HTTP 调用的主要内容,如果未能解决你的问题,请参考以下文章
Widevine android 框架 DrmInfoRequest 作为 HTTP POST 发送