POCO 如何发送 XML 数据

POCO how to send XML data?

本文关键字:数据 XML 何发送 POCO      更新时间:2023-10-16

在我的项目中,我遇到了一个严重的问题,程序无法接收数据然后崩溃。这些是我的代码:

HTTPClientSession s("x.x.x.x",8000);
HTTPRequest request(HTTPRequest::HTTP_POST);
std::ostream& send = s.sendRequest(request);
std::string body = "<a> xml </a>";
request.setContentLength( body.length() );
send << body <<std::flush;
HTTPResponse response;
std::istream& res = s.receiveResponse(response);
StreamCopier::copyStream(res, std::cout);

运行它后,当我的程序从服务器接收到数据时,它崩溃并抛出

Poco::Net::messageException

.哦,我的上帝!我将其追溯到POCO的内部代码中,发现:

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">

是我在VS2005中发送的数据属性。同时,Poco发现<!DOCTYPE的最后一个字母是E,这不是空格,所以抛出异常。有没有人调查这个案子?谁能帮助我?谢谢!!!!

我以

几乎相同的方式发送数据。我的代码只有一个区别。

request.setContentType("text/xml; charset=utf-8");

根据 Poco 库的源代码,由于来自 http 服务器的格式不正确的响应,引发了异常 'Poco::Net::MessageException'。