将 JSON 对象返回到 HTTP POST REST 调用C++

Returning JSON object to HTTP POST REST call from C++

本文关键字:POST REST 调用 C++ HTTP JSON 对象 返回      更新时间:2023-10-16

我有一个通过REST向网络公开的C++ API。我已经将应用程序编写为FastCGI进程。我能够发布到正文中有数据的应用程序并取回文本。但是现在,我想将数据作为 JSON 对象返回,而不是文本。

我已经将输出打包到JSON文件中。我只需要知道如何将其传递回请求者。

编辑:

我目前有这样的东西:http://pastebin.com/vhC30kTJ

在此,我正在打印内容(字符串)函数中打印文本。我使用 cout 打印的文本由 FastCGI 传递回 HTTP 请求者。我想传递 JSON,但我不知道该怎么做。我能够将数据写入 JSON 文件。是传回 JSON 文件还是传回 json 样式字符串?我很困惑。

理想情况下,构成 JSON 的函数应接受参数 std::ostream & 。 然后,如果您想写入您传入std::ofstream的文件,并且如果您想将其写入标准输出(在这种情况下您要这样做,以便将其发送到浏览器),您只需传入std::cout即可。 确保先写出所需的 HTTP 标头和空行,否则服务器/浏览器将尝试将 JSON 解释为 HTTP 标头。

void makejson(ostream & output, string content)
{
    /* output << "{"some":"json"}" */
}
// Write to file
ofstream file("data.json");
makejson(file, "somedata");
file.close();
// Write to browser
cout << "Content-Type: application/jsonrnrn";
makejson(cout, "somedata");