MongooseIm Rest API 与本地安装程序的连接问题
MongooseIm Rest API connection issue with local Setup
我已经设置了 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 相关的 mongooseim 配置 API。
{ 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, []}
]}
]}
这是我提到的swagger文档。 https://mongooseim.readthedocs.io/en/3.3.0/swagger/index.html
我注意到以下几点:
- 您提供的
curl
示例尝试通过 HTTP 向 MongooseIM 发送请求
- 根据您提供的配置文件部分,我可以看到 MongooseIM 需要 HTTPS 流量。
看起来将 curl
命令中的端点更改为 https://localhost:8089/api/rooms
会有所帮助。当然,如果你运行和MongooseIM在同一台机器上的命令是运行ning。否则,请将 localhost
更改为机器的正确名称或 IP 地址。
此外,在配置文件中我可以看到 REST API 配置了默认的、伪造的和自签名的证书。我强烈建议您将其更改为真实证书。为了进行测试,您需要将选项 -k
添加到 curl
命令以跳过证书验证。
我已经设置了 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 相关的 mongooseim 配置 API。
{ 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, []}
]}
]}
这是我提到的swagger文档。 https://mongooseim.readthedocs.io/en/3.3.0/swagger/index.html
我注意到以下几点:
- 您提供的
curl
示例尝试通过 HTTP 向 MongooseIM 发送请求 - 根据您提供的配置文件部分,我可以看到 MongooseIM 需要 HTTPS 流量。
看起来将 curl
命令中的端点更改为 https://localhost:8089/api/rooms
会有所帮助。当然,如果你运行和MongooseIM在同一台机器上的命令是运行ning。否则,请将 localhost
更改为机器的正确名称或 IP 地址。
此外,在配置文件中我可以看到 REST API 配置了默认的、伪造的和自签名的证书。我强烈建议您将其更改为真实证书。为了进行测试,您需要将选项 -k
添加到 curl
命令以跳过证书验证。