xml ファイルを文字列としてサーバーに投稿しようとしています。Xml ライブラリは tinyxml で、投稿には CInternetsession を使用しています。
xml ファイルが約 300 kb までの場合、投稿は正常に機能しています。
しかし、xml ファイルのサイズがそれを超えると、「操作がタイムアウトしました」というメッセージが表示されます。
なぜこのエラーが発生するのですか?
xml または CinternetSession の投稿のサイズに問題がありますか?
少なくとも約 20 mb の大きな xml を読み書きし、解析するための xml ライブラリの最適なリソースを知りたいです。xml 解析に制限はありますか?
char text[7000] = {""};
SHGetSpecialFolderPath(0,xmlpth,CSIDL_APPDATA,1);
TiXmlDocument docs( "C:\\XmlData.xml" );
bool loadOkays = docs.LoadFile();
if ( !loadOkays )
{
}
else
{
TiXmlPrinter printer;
printer.SetIndent("\t");
docs.Accept( &printer );
docs.Print();
CString URLpostdata = printer.CStr();
#define MAX_READ_BUFFER 102400
CString strHeaders =_T("Content-Type: text/xml");
CString strFormData = _T("Data=<?xml version=\"1.0\" encoding=\"UTF-8\" ?><xmldata>"+URLpostdata+"</xmldata>");
CInternetSession session;
session.SetOption(INTERNET_OPTION_CONNECT_TIMEOUT,60000);
session.SetOption(INTERNET_OPTION_CONNECT_RETRIES, 60000);
CHttpConnection* pConnection = session.GetHttpConnection(_T("xxx.xxx.xxx.x"));
CHttpFile* pFile =
pConnection->OpenRequest(CHttpConnection::HTTP_VERB_POST, _T("/WinTest/TestServlet?"));
BOOL result = pFile->SendRequest(strHeaders, (LPVOID)(LPCTSTR)strFormData, strFormData.GetLength());
DWORD dwError;
pFile->QueryInfoStatusCode(dwError);
if(dwError==200)
{
AfxMessageBox("Data was successfully posted");
}
}