1

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

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 发现 is 的最后一个字母<!DOCTYPE不是E空格,所以抛出异常。有人遇到过这个案子吗?谁能帮帮我?非常感谢!!!!

4

1 回答 1

1

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

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

根据 Poco 库的源代码,异常 'Poco::Net::MessageException' 由于来自 http 服务器的错误响应而引发。

于 2012-05-30T06:27:27.343 回答