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 はスペースではない<!DOCTYPEisの最後の文字を見つけるため、例外をスローします。E誰かが事件に遭遇しますか?誰が私を助けることができますか?どうもありがとうございました!!!!

4

1 に答える 1

1

ほぼ同じ方法でデータを送信しています。私のコードには1つだけ違いがあります。

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

Pocoライブラリのソースコードによると、httpサーバーからの応答の形式が正しくないため、例外'Poco :: Net::MessageException'が発生します。

于 2012-05-30T06:27:27.343 に答える