gpt4 book ai didi

c++ - 关于如何使用 cpp-netlib 进行异步 http get 请求的示例

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:04:15 29 4
gpt4 key购买 nike

我正在尝试使用 cpp-netlib 执行异步 http 请求.我在文档中找不到这方面的任何示例,因此甚至无法编译它。我目前的尝试如下(评论中有编译错误)。任何提示如何使其工作?先感谢您!

#include <iostream>
#include <boost/network/protocol/http/client.hpp>

using namespace std;
using namespace boost::network;
using namespace boost::network::http;

typedef function<void(boost::iterator_range<char const *> const &, boost::system::error_code const &)> body_callback_function_type; // ERROR: Expected initializer before '<' token

body_callback_function_type callback() // ERROR: 'body_callback_function_type' does not name a type
{
cout << "This is my callback" << endl;
}

int main() {
http::client client;
http::client::request request("http://www.google.com/");
http::client::response response = client.get(request, http::_body_handler=callback()); // ERROR: 'callback' was not declared in this scope
cout << body(response) << endl;
return 0;
}

最佳答案

我没有使用过 cpp-netlib,但看起来您的代码存在一些明显的问题:

第一个错误是函数 typedef 上缺少 boost::

typedef function<void(boost::iterator_range<char const *> const &, boost::system::error_code const &)> body_callback_function_type; // ERROR: Expected initializer before '<' token

应该是

typedef boost::function<void(boost::iterator_range<char const *> const &, boost::system::error_code const &)> body_callback_function_type;

第二个错误是:

body_callback_function_type callback() 
{
cout << "This is my callback" << endl;
}

应该是正确的函数类型:

void callback( boost::iterator_range<char const *> const &, boost::system::error_code const &)
{
cout << "This is my callback" << endl;
}

第三个错误是你应该传递回调,而不是调用它:

http::client::response response = client.get(request, http::_body_handler=callback());

应该是

http::client::response response = client.get(request, callback);

希望就这些(或者足以让您开始)。

关于c++ - 关于如何使用 cpp-netlib 进行异步 http get 请求的示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13059967/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com