这里是否有人尝试使用 PHP 发布值并使用 CURL 在 c++ 上获取所述值。我已经使用我在谷歌上搜索过的代码进行了尝试,但 CURL 的结果是页面的 html 组合。
PHP
<html>
<head><title>Test Page</title></head>
<body>
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
<p>Name:</p><input type="text" name="name">
<input type="submit">
</form>
<?php
if($_SERVER["REQUEST_METHOD"]=="POST")
{
$name = $_POST['name'];
if(empty($name))
echo "Name is empty";
else
echo $name;
}
?>
</body>
C++ 代码
#include <iostream>
#include "json/json.h"
#include <curl/curl.h>
#include <string.h>
using namespace std;
static size_t WriteCallback(void *contents, size_t size, size_t nmemb, void *userp)
{
((string*)userp)->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main()
{
CURL *curl;
CURLcode curl_res;
string rBuffer;
string *s = new string("");
curl_global_init(CURL_GLOBAL_ALL);
curl = curl_easy_init();
if(curl)
{
curl_easy_setopt(curl, CURLOPT_URL, "192.168.1.106/testwebserver/index.php");
curl_easy_setopt(curl, CURLOPT_POST, 1);
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "name=test");
//curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
//curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
//curl_easy_setopt(curl, CURLOPT_WRITEDATA, s);
curl_res = curl_easy_perform(curl);
if (res != CURLE_OK)
fprintf(stderr, "curl_easy_perform() failed: %s\n", curl_easy_strerror(curl_res));
curl_easy_cleanup(curl);
}
}
我真的很感激帮助。