我使用boost::network::uri::encoded()
来编码我的请求URL。
但是当我构建项目时,我看到了错误:
error C2039: "value": Is not a member of "boost::proto"
一共有四个,它们来自:
boost\proto\generate.hpp(239,20);
boost\proto\generate.hpp(239,53);
boost\proto\generate.hpp(248,20);
boost\proto\generate.hpp(248,53)
这是我的测试代码:
#include <iostream>
#include <string>
#include "boost/network/uri.hpp"
using std::string;
string EncodeURL(string str)
{
return boost::network::uri::encoded(str);
}
string DecodeURL(string str)
{
return boost::network::uri::decoded(str);
}
int main()
{
EncodeURL("https://test.com/a+a+a.html");
return 0;
}
我使用vcpkg安装了boost
和cpp-netlib
。我的IDE是Visual Studio Professional 2019,操作系统是Windows 10 Professional Workstation x64(Ver.2004
)。
我想知道如何避免这些错误或另一种方式来编码UNICODE兼容的URL。
1条答案
按热度按时间uqcuzwp81#
这是boost库的一个bug。它可以通过将boost库更新到最新版本或编辑
boost\proto\generate.hpp
来修复。编辑
boost\proto\generate.hpp
的方法:将第95行改为
将第233行改为
这是boost库中的PR。