使用uri :: uri的cpp-netlib请求

时间:2014-10-03 13:13:12

标签: c++ cpp-netlib

我正在使用带有boost 1.55的cpp-netlib版本0.11并想要使用这些行创建一个请求对象:

#include <iostream>

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

using namespace boost::network;
typedef http::basic_client< http::tags::http_default_8bit_tcp_resolve ,1,1> httpClient;

int main() {
   uri::uri url = std::string("http://www.abcs.de/");

   httpClient::request req;
   req << header("Content-Type", "application/x-www-form-urlencoded");

   req << url; // THIS LINE DOESN'T COMPILE
}

如果我正确阅读文档(here),那么设置请求网址的那一行应该可行,但我只能

/usr/local/include/boost/network/protocol/http/request.hpp: In instantiation of ‘boost::network::http::basic_request<Tag>& boost::network::http::operator<<(boost::network::http::basic_request<Tag>&, const Directive&) [with Tag = boost::network::http::tags::http_default_8bit_tcp_resolve; Directive = boost::network::uri::uri]’:
src/receiver.h:33:11:   required from here
/usr/local/include/boost/network/protocol/http/request.hpp:71:26: error: no match for call to ‘(const boost::network::uri::uri) (boost::network::http::basic_request<boost::network::http::tags::http_default_8bit_tcp_resolve>&)’
         directive(message);

1 个答案:

答案 0 :(得分:0)

要httpClient :: request对象有一个成员方法来设置url req.uri( url )有效