1
在我的項目中,我遇到了一個嚴重的問題,哪個程序無法接收數據然後崩潰。 這些都是我的代碼:POCO如何發送XML數據?
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我的數據sended屬性。 與此同時,Poco發現<!DOCTYPE
的最後一個字母是E
,這不是空格,所以它拋出異常。 做任何一個入侵案件?誰可以幫助我?非常感謝你!
我將這些代碼添加到我的項目中,但沒有任何反應。@ Denis Novikov –
,你能給我一個樣本來介紹你的想法,謝謝! –
當我嘗試google.com(ip =「173.194.32.164」)的代碼時,我沒有發現任何異常。當我嘗試使用Poco :: Net :: HTTPServerSession自己編寫的服務器時,也會發生同樣的情況。 但是有些服務器在返回時不返回HTTP頭。這就是MessageException的原因。 –