POST данные из curl++ не отправляет
Я пытался опубликовать данные из curlpp в веб-сценарий, но это не похоже на работу. В конце PHP я просто запускаю var_dump($_POST); распечатать все полученное обратно. Глобальное $ _POST кажется пустым при исполнении.
Мой код C++ выглядит следующим образом:
std::stringstream out;
std::stringstream ss;
ss << "127.0.0.1/online.php";
try
{
curlpp::Cleanup clean;
curlpp::Easy request;
curlpp::options::WriteStream ws(&out);
request.setOpt(ws);
request.setOpt<curlpp::options::Url>(ss.str());
request.setOpt(new curlpp::options::Verbose(true));
std::list<std::string> header;
header.push_back("Content-Type: application/octet-stream");
request.setOpt(new curlpp::options::HttpHeader(header));
std::string test = "abcd=abcd";
request.setOpt(new curlpp::options::PostFields(test));
request.setOpt(new curlpp::options::PostFieldSize(test.length()));
request.perform();
}
catch(curlpp::RuntimeError& e)
{
ss.str("");
ss << "Error making request of type " << op << ": " << e.what();
PrintError(ss.str());
return "";
}
std::cout << out.str() << std::endl;
Я делаю что-то очень явно не так здесь?
2 ответа
Для загрузки клиент-сервер стандарт определяет, что тип контента будет одним из application/x-www-form-urlencoded
или же multipart/form-data
, Поскольку ваш веб-сервер и / или PHP соответствуют стандарту, вам следует изменить тип контента, в данном случае, на application/x-www-form-urlencoded
,
Ваш content-type
неправильно, используйте application/x-www-form-urlencoded
, Смотрите здесь.