在卡萨布兰卡形成编码参数的列表
List to form-encoded parameters in Casablanca
我正在使用cpprestsdk(casabalanca(将请求POST到服务器我有一个参数清单
std::list<std::pair<string, string>> query;
query.push_back(std::make_pair("val1", "one two"));
query.push_back(std::make_pair("val2", "yo"));
其需要被编码为CCD_ 1。
val1=one%20two&val2=yo
问题是我找不到一个Api来做这件事(就像我有一个json负载的web::json::value
一样(。我需要对每个键/值进行编码,并自己进行连接。我错过了一个Api,或者根本不存在
找到解决方案。。。
web::http::http_request request;
web::uri_builder parameter;
parameter.append_query("val1", "one two", true);
parameter.append_query("val2", "yo", true);
request.set_body(parameter.query(), web::http::details::mime_types::application_x_www_form_urlencoded);
您可以使用std::list
并填写查询参数
std::string test_url("http://127.0.0.1:9044/api/v1/somepath/");
web::uri_builder ub(test_url);
std::list<std::pair<std::string, std::string>> query;
query.push_back(std::make_pair("val1", "one two"));
query.push_back(std::make_pair("val2", "yo"));
for(auto const &it: query)
{
std::cout<<it.first<<" : "<<it.second<<std::endl;
ub.append_query(it.first, it.second);
}
std::string uri_builder_str = ub.to_string();
http_client client(uri_builder_str);
std::cout<<uri_builder_str<<std::endl;
return client.request(methods::GET);
相关文章:
- 概念中的cv限定符需要表达式参数列表
- 在没有参数列表的情况下使用模板名称"Event"无效,模板问题
- 错误 没有与参数列表匹配的重载函数"getline"实例
- std::vector 没有重载函数的实例与参数列表匹配
- 模板参数列表中的 false 在模板初始化期间计算为什么?
- C++模板/别名 - 模板参数列表中参数 1 处的类型/值不匹配
- 构造函数/函数声明参数列表中的统一初始化
- 模板化检查是否存在带有参数列表的类成员函数?
- 如何将类成员方法的参数列表自动填充写入可变参数?
- 带有整数的变量参数列表
- 转发变量参数列表以模拟 std::thread
- 错误:"模板<类_Tp,类_Dp>类 std::unique_ptr"的模板参数列表中参数 1 的类型/值不匹配
- C++-将具有引用的长参数列表重构为结构
- 缺少别名模板C++参数列表
- C++如果两个模板函数都与参数列表匹配,将调用哪个模板
- "extern"声明以及带有和不带参数列表的类模板实例的后续定义
- 使用显式模板参数列表和 [temp.arg.explicit]/3 的函数调用的演绎失败
- 没有函数模板的实例与我不知道为什么的参数列表匹配
- 我可以使用宏自动构建参数列表吗?
- 类成员函数参数列表是否可以依赖于模板参数?