问题标签 [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.
ssl - Erlang:使用 SSL 的 inets httpd
设置起来有多么困难,真是太荒谬了。我已经尝试了3天了。梳理互联网和这个网站寻求帮助,但没有任何效果。
我想要的在概念上很简单。我想要一个带有 ssl 的 inets httpd 服务器。让服务器启动并运行没有问题......无论如何都不是ssl。当添加 ssl 时,它就不起作用了。
不要问什么错误,有多个错误,它们会根据我对配置所做的更改而变化。主要是浏览器错误说证书没有授予执行此或那个的权限,或者如果进行了更改,则在 erlang shell 中出现了一堆错误和进程崩溃。
我只是想知道 1)我需要什么 ssl 证书,2)它们需要采用什么格式,以及 3)在 httpd 服务器端,我需要哪些 ssl 配置选项。
没有类似 Apache 的配置或配置文件。我想要以编程方式执行此操作的配置选项。
如果有人可以提供帮助,我会全力以赴。
erlang - Elixir - https URL 的问题
我是 Elixir 和 Erlang 的新手,在访问 https URL 时遇到了一些问题。我已经尝试过 Elixir 特定的HTTPotion和 Erlang 的:inets模块。
所以从 iex 控制台(交互式 Elixir):
使用 HTTPotion:
使用 :inets:
在这两种情况下,我都会得到一个巨大的堆栈跟踪,该堆栈跟踪基本说明某处存在错误匹配并且状态机正在终止。访问 http URL 时我没有得到这个。我错过了什么?谢谢。
编辑 - 这是来自 HTTPotion 的错误消息:
yaws - 氮气 wf.hrl 文件被删除并出现警告
我正在使用一个 slim_version 的牛仔,我也尝试过在 slim_yaws 上使用氮气。令我困惑的是VM突然删除了wf.hrl文件。我不明白这是什么原因造成的!这是控制台中显示的内容。
我很困惑,因为使用 wf.hrl 的模块在删除后无法编译。我在slim_cowboy和slim_yaws上体验过。很突然!
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:
正如我所说,现在最后我尝试从另一个节点调用它,但我得到了错误:
任何帮助和建议表示赞赏。谢谢你。
cowboy - 为什么牛仔作为 httpclient 无法启动 inets
我想使用 otp 从牛仔发送 http 帖子httpc:request/4;
application:start(inets) 返回错误:
错误,{“没有这样的文件或目录”,“inets.app”}
我怎样才能启动 inets?
erlang - 启动 ibrowse 以支持对服务器的无限请求
我过去常常向外部服务器ibrowse
发出请求,但在支持频繁POST
和GET
同时请求时遇到了问题。
我从ibrowse
默认设置开始:
然后我ibrowse
用来执行POST
请求:
或者:
当我调用该函数时,它在第一次尝试时成功,结果如下:
但是当我重复调用该函数时,它无法返回以下错误:
我如何确保每当我与 进行高频连接时ibrowse
,它都会成功?
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}
,所以我一直在尝试两种方式:
erlang - inets httpc:用户指南中的客户端示例不起作用
我从inets User's Guide复制了以下代码:
我需要有关如何使该请求成功完成的建议。
erlang - inets httpd:服务器配置文件语法(proplist_file)
当您像这样启动 httpd 服务器时,配置文件的语法是什么:
httpd 文档说:
{proplist_file,路径()}
如果定义了这个属性,Inets 期望找到这个文件中定义的所有其他属性。
和:
属性将从配置文件中获取,该配置文件可以包含常规 Erlang 属性列表
但是有了这个文件:
server_config.txt:
我得到错误:
接下来,我尝试了 Apache 语法,但也没有用:
server_config.txt:
好的,通过去掉引号,我在 Apache 样式语法上取得了一些进展:
现在,我得到了错误:
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 中有一个双倍的组件?