问题描述
我发送带有json(用户名,密码)的帖子请求:
json::value v1;
v1[L"password"] = json::value::string(U("5367598"));
v1[L"username"] = json::value::string(U("poplovok"));
display_json(v1,L"CLIENT MADE POST : ");
make_request(client,methods::POST,v1);
在服务器端,我具有此功能,但是我复制了该功能并且不完全理解(function
void handle_request(
HTTP_Request request,function<void(json::value const &,json::value &)> action)
{
auto answer = json::value::object();
request
.extract_json()
.then([&answer,&action](pplx::task<json::value> task) {
try
{
TRACE("ZADOROVA");
auto const & jvalue = task.get();
display_json(jvalue,L"R: ");
if (!jvalue.is_null())
{
action(jvalue,answer);
}
}
catch (http_exception const & e)
{
wcout << e.what() << endl;
}
})
.wait();
display_json(answer,L"S: ");
request.reply(status_codes::OK,answer);
}
我试图检查json值,以及它们是否能正确回答json令牌,并具有此功能,但似乎不起作用。
void handle_firstpost(HTTP_Request request)
{
TRACE("\nhandle FirsTPOST\n");
wcout << "1" << endl;
handle_request(
request,[](json::value const& jvalue,json::value& answer)
{
wcout << "2" << endl;
if (jvalue.at(1) == json::value::string(U("5367598")))
{
wcout << "3" << endl;
json::value JsonAnswer;
JsonAnswer[L"Token"] = json::value::string(U("12j3lkanwlnlkl4kml1k2melk12n4lkmasldio948"));
answer = JsonAnswer;
}
wcout << "4" << endl;
wcout << jvalue.at(1) << endl;
});
wcout << "5" << endl;
}
这是应用程序的输出,我不明白为什么它只放了两个前wcout。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)