我试图将 xml 文件作为字符串发布到服务器。XML 库是 tinyxml,用于发布使用 CInternetsession。
当 xml 文件达到 300 kb 左右时,会发生什么情况,Posting 工作正常。
但是当 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");
}
}