[英]Sending a HTTP POST request for updating file contents using C++ REST SDK Casablanca
[英]Http_client post request using C++ REST SDK (Casablanca)
我正在嘗試使用C ++ REST SDK(Casablanca)庫執行POST HTTP請求,但我沒有成功...我也找不到任何最近的/工作片段。 有誰能夠幫我?
使用我的以下代碼,我獲得了一個運行時web :: json :: json_exception,說“不是字符串”:
json::value postData;
postData[L"name"] = json::value::string(L"Joe Smith");
postData[L"sport"] = json::value::string(L"Baseball");
web::http::client::http_client client(L"https://jsonplaceholder.typicode.com/posts");
try
{
client.request(
methods::POST,
L"",
postData/*.as_string().c_str()*/,
L"application/json");
}
catch (web::json::json_exception &je)
{
std::cout << je.what();
}
catch (std::exception &e)
{
std::cout << e.what();
}
這樣的事情會對你有用:
web::json::value json_v ;
json_v["title"] = web::json::value::string("foo");
json_v["body"] = web::json::value::string("bar");
json_v["userId"] = web::json::value::number(1);
web::http::client::http_client client("https://jsonplaceholder.typicode.com/posts");
client.request(web::http::methods::POST, U("/"), json_v)
.then([](const web::http::http_response& response) {
return response.extract_json();
})
.then([&json_return](const pplx::task<web::json::value>& task) {
try {
json_return = task.get();
}
catch (const web::http::http_exception& e) {
std::cout << "error " << e.what() << std::endl;
}
})
.wait();
std::cout << json_return.serialize() << std::endl;
您也可以簡單地解析字符串:
web::json::value json_par;
json_par.parse("{\"title\": \"foo\", \"body\": \"bar\", \"userId\": 1}");
剛剛使用json對象后,方法與第一個示例相同。 如果從文件中讀取json,則會稍微容易一些。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.