C++ 从Poco http客户端获取对字符串的响应

C++ 从Poco http客户端获取对字符串的响应,c++,http,stream,httpclient,poco,C++,Http,Stream,Httpclient,Poco,我有一个小代码,它使用Poco库向本地web服务发送POST HTTP调用并获得响应。目前,我在终端上用cout打印了响应消息 #include "Poco/Net/HTTPClientSession.h" #include "Poco/Net/HTTPRequest.h" #include "Poco/Net/HTTPResponse.h" #include "Poco/StreamCopier.h" #include <iostream> using namespace std

我有一个小代码,它使用Poco库向本地web服务发送POST HTTP调用并获得响应。目前,我在终端上用cout打印了响应消息

#include "Poco/Net/HTTPClientSession.h"
#include "Poco/Net/HTTPRequest.h"
#include "Poco/Net/HTTPResponse.h"
#include "Poco/StreamCopier.h"
#include <iostream>

using namespace std;
using namespace Poco::Net;
using namespace Poco;

int main (int argc, char* argv[])
{
    HTTPClientSession s("localhost", 8000);
    HTTPRequest request(HTTPRequest::HTTP_POST, "/test");
    s.sendRequest(request);

    HTTPResponse response;
    std::istream& rs = s.receiveResponse(response);
    StreamCopier::copyStream(rs, cout);

    return 0;
}
#包括“Poco/Net/HTTPClientSession.h”
#包括“Poco/Net/HTTPRequest.h”
#包括“Poco/Net/HTTPResponse.h”
#包括“Poco/StreamCopier.h”
#包括
使用名称空间std;
使用名称空间Poco::Net;
使用名称空间Poco;
int main(int argc,char*argv[])
{
HttpClientSessions(“本地主机”,8000);
HTTPRequest请求(HTTPRequest::HTTP_POST,“/test”);
s、 发送请求(请求);
HTTPResponse响应;
std::istream&rs=s.接收方响应(响应);
StreamCopier::copyStream(rs,cout);
返回0;
}

如何将响应消息存储在字符数组或字符串中,而不是打印或存储在文件中?

我不熟悉Poco,但您可以用替换std::cout,然后从中取出字符串

因此,不要这样做:

StreamCopier::copyStream(rs, cout);
使用此代码

#include <sstream>
// ...
std::ostringstream oss;
StreamCopier::copyStream(rs, oss);
std::string response = oss.str();
// use "response" ...

更好的是,用替换它。如果我注意到这个功能。。。两种方法都很好。谢谢你们两位!
std::string responseStr;
StreamCopier::copyToString(rs, responseStr);
// use "responseStr" ...