尝试使用libcurl在服务器php代码中设置$\u GET而不是$\u PUT来发布结果 我在客户端使用C++,我想通过libCURL来做一个HTTP POST。我已经成功地完成了。但我看到的问题是,在我的服务器端,$\u GET变量被我的URL参数填充,而$\u POST是空的。但是,我可以检查文件\u获取\u内容'php://input它确实包含了我的POST请求的主体 这是我的C++代码: CURLcode result = curl_easy_setopt(s->mHandle, CURLOPT_WRITEFUNCTION, read_callback_func); result = curl_easy_setopt(s->mHandle, CURLOPT_WRITEDATA, (void*)s->mHandle); result = curl_easy_setopt(s->mHandle, CURLOPT_URL, complete_url.c_str()); result = curl_easy_setopt(s->mHandle, CURLOPT_POST, 1); result = curl_easy_setopt(s->mHandle, CURLOPT_COPYPOSTFIELDS, body.c_str()); result = curl_easy_setopt(s->mHandle, CURLOPT_CONNECTTIMEOUT, 15); CURLMcode mresult = curl_multi_add_handle(mMultiHandle, s->mHandle); mresult = curl_multi_perform(mMultiHandle, &mNumRunningHandles);

尝试使用libcurl在服务器php代码中设置$\u GET而不是$\u PUT来发布结果 我在客户端使用C++,我想通过libCURL来做一个HTTP POST。我已经成功地完成了。但我看到的问题是,在我的服务器端,$\u GET变量被我的URL参数填充,而$\u POST是空的。但是,我可以检查文件\u获取\u内容'php://input它确实包含了我的POST请求的主体 这是我的C++代码: CURLcode result = curl_easy_setopt(s->mHandle, CURLOPT_WRITEFUNCTION, read_callback_func); result = curl_easy_setopt(s->mHandle, CURLOPT_WRITEDATA, (void*)s->mHandle); result = curl_easy_setopt(s->mHandle, CURLOPT_URL, complete_url.c_str()); result = curl_easy_setopt(s->mHandle, CURLOPT_POST, 1); result = curl_easy_setopt(s->mHandle, CURLOPT_COPYPOSTFIELDS, body.c_str()); result = curl_easy_setopt(s->mHandle, CURLOPT_CONNECTTIMEOUT, 15); CURLMcode mresult = curl_multi_add_handle(mMultiHandle, s->mHandle); mresult = curl_multi_perform(mMultiHandle, &mNumRunningHandles);,php,c++,libcurl,Php,C++,Libcurl,在本例中,变量complete_url的值为 其中,url编码的json字符串是一个对象,其中包含一个名为function的字段,该字段设置为我尝试执行的函数的名称 变量体包含我试图发布到用户已填写的服务器的文本块。这是我检查文件\u get\u contents'的值时显示的内容php://input'. 当我查看服务器上的php代码时,$\u GET字段包含映射到url编码的json字符串的关键数据$_邮件是空的。查看我的服务器全局,REQUEST_METHOD设置为POST,CONTEN

在本例中,变量complete_url的值为

其中,url编码的json字符串是一个对象,其中包含一个名为function的字段,该字段设置为我尝试执行的函数的名称

变量体包含我试图发布到用户已填写的服务器的文本块。这是我检查文件\u get\u contents'的值时显示的内容php://input'.

当我查看服务器上的php代码时,$\u GET字段包含映射到url编码的json字符串的关键数据$_邮件是空的。查看我的服务器全局,REQUEST_METHOD设置为POST,CONTENT_类型为application/x-www-form-urlencoded

现在,我可以做了,因为我有所有的信息,我需要插入到我的数据库。然而,这样做似乎是不对的,因为我希望我的libcurl POST尝试会导致我的服务器得到POST而不是GET。你知道我可能做错了什么吗?谢谢


编辑:我是不是误解了一些基本的东西?我看到了这个问题的答案,这意味着我实际上应该在$\u GET数组中看到我的所有URL参数$_帖子应该是用消息体填充的,它不是,它总是空的,但是我可以通过它访问它php://input 代码行。它基本上能正常工作吗?

URL和POSTFIELDS数据的格式/设置是否正确?你有没有在这里寻找参考:我使用的是CURLOPT_COPYPOSTFIELDS,而不是CURLOPT_POSTFIELDS,这看起来基本上是一样的,只是它复制了传入的数据。另外,我有点不清楚数据=bla之类的东西去了哪里,而身体内容去了哪里。http post链接演示了data=bla部分,但是主体呢?