[英]getting POST values on PHP using CURL on C++
這里是否有人嘗試使用 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);
}
}
非常感謝您的幫助。
您的 C++ 腳本確實獲取了整個 PHP 響應。
這包括<html> <head> <body>
等。
如果您只想要回聲的響應,請使用:
<?php
if($_SERVER["REQUEST_METHOD"]=="POST")
{
$name = $_POST['name'];
if(empty($name))
echo "Name is empty";
else
echo $name;
}
?>
或更短:
<?php
echo isset($_POST['name'])? $_POST['name'] : "Name is empty" ;
?>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.