读取POCO HTTPClientRequest的响应
Read Response of POCO HTTPClientRequest
嗨,我正在上传一个文件,使用POCO中的多部分上传(通过发送一个文件的内容,通过正常的POST请求附加边界)。但是当我尝试将响应读取为:
时std::ostream& myOStream = session.sendRequest(req);
// sends the body
myOStream << reqBody;
Poco::Net::HTTPResponse res;
// get the response body from server
std::istream& inStream = session.receiveResponse(res);
std::ostringstream outStringStream;
outStringStream << inStream.rdbuf();
std::cout<< outStringStream.str();
我得到这个异常"SSL Connection unexpected Closed"在这行:
outStringStream << inStream.rdbuf();
同样,如果我尝试将响应读取为:
Poco::StreamCopier::copyStream( inStream, outStringStream );
std::cout<< outStringStream.str();
我得到空响应(在这种情况下没有例外)。服务器在响应中返回纯文本。我得到它作为响应,如果使用qt,但不是通过POCO。请帮我看一下回复正文。这个例外的原因是什么?
另外,如果我将响应状态读取为res.getStatus()和res.getReason(),则返回200Ok。
这个代码是为我工作,你可以试试。
std::istream& rs = _httpClientSession.receiveResponse(response);
memset(_response, 0, RESPONSE_BUFF_SIZE);
rs.read(_response, RESPONSE_BUFF_SIZE-1);
//below code is just to clear the istream
std::streamsize nRead = rs.gcount();
while( !rs.eof() || nRead != 0)
{
rs.read(_response, RESPONSE_BUFF_SIZE);
nRead = rs.gcount();
}
还有一件事,在任何异常的情况下,您必须通过调用_httpClientSession.reset();
相关文章:
- 当服务中的事件被触发时,如何将响应从服务发送回客户端?
- C++ 信号和插槽不工作:插槽不响应事件
- NodeJs 服务器充斥着 UDP 广播,不发送响应
- C++关于ENUM的问题。我得到的响应比枚举列表大
- 应用程序在打开的简历中捕获视频后没有响应
- 使用 cpprest (Casablanca) 返回 PDF 响应
- 为什么当通过 TCP 发送的消息速率增加时,请求-响应消息对的延迟会降低?
- 如何使用从处理程序调度的最终回调将响应异步返回给调用方on_read?
- 获取加密的正文响应WinHttp HTTPS
- QtConcurrent - 在发布到 UI 线程的数千个结果中保持 GUI 响应
- 同步读取多个 TCP 响应
- HTTP 响应格式不正确?
- 如何使用软化工具包从 OPC UA 服务器异步读取操作回调中的数据值响应中获取 NodeId 详细信息
- HTTP帖子,无需等待响应
- 问题导致程序停止响应,并且姓氏未正确打印
- AT 命令响应解析器
- 将静态 IP 分配给我的 ESP32 服务器后不再响应
- 用于C++的 TCP/IP 解析器和响应器
- 我会导致太多内存泄漏,以至于我的计算机无响应吗?
- 如何从wxWebView获取响应