3

curlpp 内から Web スクリプトにデータを投稿しようとしましたが、うまくいかないようです。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; 

ここで明らかに間違ったことをしていますか?

4

2 に答える 2

2

クライアントからサーバーへのアップロードの場合、標準では、コンテンツ タイプがapplication/x-www-form-urlencodedまたは のいずれかになると指定されていますmultipart/form-data。Web サーバーや PHP は標準に準拠しているため、この場合はコンテンツ タイプを に変更する必要がありますapplication/x-www-form-urlencoded

于 2011-07-26T10:34:58.780 に答える
0

あなたcontent-typeは間違っています、使用してapplication/x-www-form-urlencodedください。ここを参照してください。

于 2011-07-26T10:29:36.070 に答える