我正在尝试编写一个C++代码片段来向elasticsearch服务器发布POST。服务器上的IP 172.20.1.160运行,并使用curl在Elasticsearch教程中,我可以把数据,如:如何使用boost asio连接到elasticsearch?
curl -XPUT 'localhost:9200/twitter/tweet/1?op_type=create&pretty' -H 'Content-Type: application/json' -d'
{ “用户”: “kimchy”, “POST_DATE”:“2009-11 -15T14:12:12" , “消息”: “尝试Elasticsearch” } '
但是当我尝试做升压ASIO类似的东西,我的连接显然拒绝。
这里是展示我如何努力创建连接最小的可编译代码,并产生错误:
/// Compiled with:
/// g++ --std=c++14 foo.cpp -lboost_system -lpthread
#include <boost/asio.hpp>
constexpr const char *carbon_port = "2003";
constexpr const char *ES_port = "9200";
constexpr const char *server_ip = "172.20.1.160";
int main()
{
boost::asio::io_service io_service;
boost::asio::ip::tcp::resolver resolver(io_service);
boost::asio::ip::tcp::resolver::query query(server_ip, ES_port);
auto endpoint = *resolver.resolve(query);
boost::asio::ip::tcp::socket socket (io_service);
socket.connect(endpoint);
}
对于它的价值,我也有同样的机器上运行的碳石墨服务器,我可以连接,并通过纯文本协议有发送数据,但我无法作出一个套接字连接elasticsearch,我得到异常:
terminate called after throwing an instance of 'boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::system::system_error> >'
what(): connect: Connection refused
可有人开导我什么,我需要知道获得这工作?
是从相同的IP发送的请求? – Satya
是的。这很重要吗? – Spacemoose
你可以尝试使用本地主机代替IP,只需一分钱 – Satya