gpt4 book ai didi

C++ libcurl PATCH 请求无法通过 .str.c_str() 进行字符串流转换

转载 作者:行者123 更新时间:2023-11-30 03:16:47 25 4
gpt4 key购买 nike

我正在通过 C++ libcurl 库发送补丁请求,当我将“有效负载”硬编码到我的程序中时,它可以 100% 正常工作,但是,我希望它被传入,所以我使用 stringstream 来创建它。当我用 stringstream 发送它时,服务器响应 400 Bad request 而当我手动输入它时,程序运行没有错误

这是我硬编码后它的外观(和工作方式)

curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"region\":\"us-central\"}");

这就是我用 stringstream 格式化它的方式(由于某些原因它不起作用

stringstream payload;
payload << "{\"region\":\"";
payload << c_codes[i];
payload << "\"}";

CURLOPT_POSTFIELDS 中,我将其称为 payload.str().c_str()

最佳答案

问题是@Igor Tandetnik描述,但我只想发布一个替代解决方案:

你可以使用CURLOPT_COPYPOSTFIELDS而不是 CURLOPT_POSTFIELDS,那么 payload.str().c_str() 会是安全的,因为 curl 会为您制作一个字符串的拷贝,并且字符串的生命周期不再是您的责任,它是 curl 的。

关于C++ libcurl PATCH 请求无法通过 .str.c_str() 进行字符串流转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55987765/

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