gpt4 book ai didi

c++ - 从 C++ 返回 JSON 对象到 HTTP POST REST 调用

转载 作者:塔克拉玛干 更新时间:2023-11-01 19:12:02 26 4
gpt4 key购买 nike

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

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

编辑:

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

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

最佳答案

理想情况下,构成 JSON 的函数应该接受 std::ostream & 的参数。然后,如果你想写一个文件,你传入一个 std::ofstream ,如果你想把它写到标准输出(这就是你想在这种情况下做的,所以它被发送到浏览器)你可以传入 std::cout。确保先写出所需的 HTTP header 和空行,否则服务器/浏览器将尝试将 JSON 解释为 HTTP header 。

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/json\r\n\r\n";
makejson(cout, "somedata");

关于c++ - 从 C++ 返回 JSON 对象到 HTTP POST REST 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11234378/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com