api - MongooseIm Rest API 与本地设置的连接问题
问题描述
我已经设置了 mongooseim [3.3.0] ubuntu 14.04 并且它与 android 客户端设置完美配合。然后我需要测试用于创建房间的 REST API,然后在运行 swagger 文档时出现此错误。
curl -X GET --header 'Accept: application/json' --header 'Authorization: Basic dXNlcjpwYXNzd29yZA==' 'http://localhost:8089/api/rooms'
curl: (52) Empty reply from server
这是与 REST API 相关的 mongooseim 配置。
{ 8089 , ejabberd_cowboy, [
{num_acceptors, 10},
{transport_options, [{max_connections, 1024}]},
{protocol_options, [{compress, true}]},
{ssl, [{certfile, "priv/ssl/fake_cert.pem"}, {keyfile, "priv/ssl/fake_key.pem"}, {password, ""}]},
{modules, [
{"_", "/api/sse", lasse_handler, [mongoose_client_api_sse]},
{"_", "/api/messages/[:with]", mongoose_client_api_messages, []},
{"_", "/api/contacts/[:jid]", mongoose_client_api_contacts, []},
{"_", "/api/rooms/[:id]", mongoose_client_api_rooms, []},
{"_", "/api/rooms/[:id]/config", mongoose_client_api_rooms_config, []},
{"_", "/api/rooms/:id/users/[:user]", mongoose_client_api_rooms_users, []},
{"_", "/api/rooms/[:id]/messages", mongoose_client_api_rooms_messages, []}
]}
]}
这是我提到的招摇文件。https://mongooseim.readthedocs.io/en/3.3.0/swagger/index.html
解决方案
我注意到以下几点:
- 您提供的
curl
示例尝试通过 HTTP 将请求发送到 MongooseIM - 根据您提供的配置文件部分,我可以看到 MongooseIM 需要 HTTP S流量。
看起来将curl
命令中的端点更改为https://localhost:8089/api/rooms
会有所帮助。当然,如果您在运行 MongooseIM 的同一台机器上运行该命令。否则,请将 更改localhost
为正确的机器名称或 IP 地址。
更重要的是,在配置文件中,我可以看到 REST API 配置了默认的、假的和自签名的证书。我强烈建议您将其更改为真正的证书。为了测试,您需要在命令中添加选项以跳过证书验证-k
。curl
推荐阅读
- javascript - 从 1 个自动完成输入中自动填充 2 个表单输入,以从一个东西中查找代码和价格
- javascript - Wordpress、Javascript 和 Php:我是否将 authenticate-user.php 放在正确的文件夹中?
- clojure - 列出范围内的素数会导致 Clojure 中出现错误消息
- angularjs - 在 AngularJS 应用程序中注入依赖项得到 $injector:modulerr 错误
- r - 每当更新相应的 CSV 数据文件时,定期更新闪亮仪表板
- oracle-apex-5.1 - 甲骨文交互式报告中最后一行下方的总计
- mysql - 将mysql中的列从上到下行求和并选择值所在的行
- c# - AWS DynamoDB using CreateBatchWrite
- node.js - 错误:ENOENT:没有这样的文件或目录,scandir '/app/migrations'
- java - MysqlNonTransientException:客户端不支持服务器请求的认证协议;考虑升级Mysql客户端