问题标签 [inets]

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 投票
2 回答
867 浏览

ssl - Erlang:使用 SSL 的 inets httpd

设置起来有多么困难,真是太荒谬了。我已经尝试了3天了。梳理互联网和这个网站寻求帮助,但没有任何效果。

我想要的在概念上很简单。我想要一个带有 ssl 的 inets httpd 服务器。让服务器启动并运行没有问题......无论如何都不是ssl。当添加 ssl 时,它就不起作用了。

不要问什么错误,有多个错误,它们会根据我对配置所做的更改而变化。主要是浏览器错误说证书没有授予执行此或那个的权限,或者如果进行了更改,则在 erlang shell 中出现了一堆错误和进程崩溃。

我只是想知道 1)我需要什么 ssl 证书,2)它们需要采用什么格式,以及 3)在 httpd 服务器端,我需要哪些 ssl 配置选项。

没有类似 Apache 的配置或配置文件。我想要以编程方式执行此操作的配置选项。

如果有人可以提供帮助,我会全力以赴。

0 投票
2 回答
2005 浏览

erlang - Elixir - https URL 的问题

我是 Elixir 和 Erlang 的新手,在访问 https URL 时遇到了一些问题。我已经尝试过 Elixir 特定的HTTPotion和 Erlang 的:inets模块。

所以从 iex 控制台(交互式 Elixir):

使用 HTTPotion:

使用 :inets:

在这两种情况下,我都会得到一个巨大的堆栈跟踪,该堆栈跟踪基本说明某处存在错误匹配并且状态机正在终止。访问 http URL 时我没有得到这个。我错过了什么?谢谢。

编辑 - 这是来自 HTTPotion 的错误消息:

0 投票
0 回答
48 浏览

yaws - 氮气 wf.hrl 文件被删除并出现警告

我正在使用一个 slim_version 的牛仔,我也尝试过在 slim_yaws 上使用氮气。令我困惑的是VM突然删除了wf.hrl文件。我不明白这是什么原因造成的!这是控制台中显示的内容。

我很困惑,因为使用 wf.hrl 的模块在删除后无法编译。我在slim_cowboyslim_yaws上体验过。很突然!

0 投票
1 回答
642 浏览

apache - Erlang inets httpc 连接到本地 inets httpd

我正在尝试使用 httpd 实现一个模块,该模块处理进程的 HTTP 获取请求。基本上它处理传入的 get 请求,解析 get 参数并在节点上调用同步 gen_server 方法,该方法启动了 http 服务器。然后,它返回一些带有来自同步调用的返回值的 HTML。一切正常,直到我用浏览器测试它(Chrome,Firefox 最新版本工作)。但是我需要实现一个 HTTP 转发功能,其中 http 服务器可以使用给定的参数调用另一个 URL。我用httpc试了一下:

但引发了以下错误:

你能帮帮我吗?我错过了什么?

附言。其他网站,例如stackoverflow.com使用上述httpc:request(...).

配置:我启动node.erl,节点在另一个模块启动httpfront.erl httpd守护进程,get请求在httpfront处理。我这样做了几次(启动更多节点),现在我想从一个带有 httpc:request(...) 的 httpfront 实例连接到另一个。所有的 HTTP 处理程序都在本地主机上启动,但不同的非专有端口。

节点.erl:

httpfront.erl:

正如我所说,现在最后我尝试从另一个节点调用它,但我得到了错误:

任何帮助和建议表示赞赏。谢谢你。

0 投票
1 回答
95 浏览

cowboy - 为什么牛仔作为 httpclient 无法启动 inets

我想使用 otp 从牛仔发送 http 帖子httpc:request/4;

application:start(inets) 返回错误:

错误,{“没有这样的文件或目录”,“inets.app”}

我怎样才能启动 inets?

0 投票
0 回答
159 浏览

erlang - 启动 ibrowse 以支持对服务器的无限请求

我过去常常向外部服务器ibrowse发出请求,但在支持频繁POSTGET同时请求时遇到了问题。

我从ibrowse默认设置开始:

然后我ibrowse用来执行POST请求:

或者:

当我调用该函数时,它在第一次尝试时成功,结果如下:

但是当我重复调用该函数时,它无法返回以下错误:

我如何确保每当我与 进行高频连接时ibrowse,它都会成功?

0 投票
1 回答
423 浏览

erlang - inets httpd:用户指南中的服务器示例不起作用

我直接从 inets 用户指南中复制了代码:

document_root是一个无效的选项?好的,我将检查有效选项列表并更正示例中的错误....嗯,似乎没有。


好的,我需要这样做:


现在,我正在尝试绑定到 localhost 的 ipv6 版本,但我没有运气。httpd 文档说:

和 ip_address() 定义为:

但是 N 和 K 没有定义。如果 N 是整数,那么 K 是多少?我试过了:

但我得到一个错误:

然而,有了 ipv4 地址,一切都按预期工作:

/ets/主机:

接下来,我尝试了{bind_address, any}

但是,我无法使用 ipv6 地址执行获取请求:


好的,我解决了尝试将服务器绑定到 ipv6 地址时遇到的错误:我需要指定选项{ipfamily, inet6}

但是,我的 httpc:request() 仍然失败:

可以使用 curl 使用 ipv6 地址发出获取请求:

这让我相信httpc:request()ipv6 地址有问题。


好的,我尝试为 ipv6 配置客户端:

手指交叉……

然后我尝试了(我为易读添加了间距):

这个错误对我来说毫无意义。httpc:request()有五个 arg 版本,我仔细检查了所有 args 的类型,我的类型是正确的:


好的,第二个参数实际上是一个元组:{string, []}. 这是我现在使用服务器的位置:

和客户:

但是我的客户端仍然无法连接到 ipv6 地址。我不知道我是否应该使用 httpc:request() 选项{ipv6_host_with_brackets, true},所以我一直在尝试两种方式:

0 投票
1 回答
546 浏览

erlang - inets httpc:用户指南中的客户端示例不起作用

我从inets User's Guide复制了以下代码:

我需要有关如何使该请求成功完成的建议。

0 投票
1 回答
135 浏览

erlang - inets httpd:服务器配置文件语法(proplist_file)

当您像这样启动 httpd 服务器时,配置文件的语法是什么:

httpd 文档说:

{proplist_file,路径()}

如果定义了这个属性,Inets 期望找到这个文件中定义的所有其他属性。

和:

属性将从配置文件中获取,该配置文件可以包含常规 Erlang 属性列表

但是有了这个文件:

server_config.txt:

我得到错误:

接下来,我尝试了 Apache 语法,但也没有用:

server_config.txt:



好的,通过去掉引号,我在 Apache 样式语法上取得了一些进展:

现在,我得到了错误:

0 投票
1 回答
385 浏览

erlang - inets httpd cgi 脚本:为什么我收到“没有这样的文件或目录”错误?

当我尝试从 inets httpd 服务器请求 cgi 脚本时,我收到此错误:

我注意到路径的 cgi-bin 组件翻了一番。我的 cgi 脚本实际上位于:

这是我的 httpd 服务器 proplist_file:

根据httpd 文档

CGI 属性- 需要 mod_cgi

{script_alias, {Alias, RealName}}
别名 = string() 和 RealName = string()。具有与属性别名相同的行为,除了它们还将目标目录标记为包含 CGI 脚本。路径以 Alias 开头的 URL 映射到以 RealName 开头的脚本,例如:

访问http://your.server.org/cgi-bin/foo会导致服务器运行脚本/web/cgi-bin/foo

和:

{server_root, path()}
定义服务器的主目录,可以存储日志文件等。其他属性中指定的相对路径引用此目录。

更多信息:

cgi-bin为什么我的请求 url 中有一个双倍的组件?