我的代码需要使用 vc++ 将 xml 数据发布到服务器,我使用 CInternetSession 进行发布,使用 tinyxml 进行 xml。
如果我的 xml 数据约为 8 kb,则数据发布得非常好。但如果 xml 文件大小约为 15 kb,那么我会收到“与服务器的连接已重置”。
TiXmlDocument doc( "C:\\test.xml" );
bool loadOkay = doc.LoadFile();
if ( loadOkay )
{
TiXmlPrinter printer;
printer.SetIndent("\t");
docs.Accept( &printer );
docs.Print();
CString zURLstest = printer.CStr();
#define MAX_READ_BUFFER 102400
CInternetSession* p_CInternetSession;
CHttpFile* p_HttpFile;
CStdioFile* p_File;
char z_ResponseBuff [MAX_READ_BUFFER];
ULONG ul_ReadLen;
CFile cFResponce;
p_CInternetSession = new CInternetSession(NULL,1,PRE_CONFIG_INTERNET_ACCESS,NULL,NULL,0);
p_CInternetSession->SetOption(INTERNET_OPTION_CONNECT_TIMEOUT,10000);
p_CInternetSession->SetOption(INTERNET_OPTION_CONNECT_RETRIES, 3);
CString zURL = "http://xxx.xxx.xxx.x/Test/TestServlet?Data=";
CString zDWURL(zURL + zURLstest);
p_File = p_CInternetSession->OpenURL(zDWURL, 1, INTERNET_FLAG_TRANSFER_BINARY|INTERNET_FLAG_DONT_CACHE);
AfxMessageBox(zDWURL);
p_HttpFile = (CHttpFile*)p_File;
ul_ReadLen = p_HttpFile->Read (z_ResponseBuff, MAX_READ_BUFFER);
DWORD dwError;
p_HttpFile->QueryInfoStatusCode(dwError);
if(dwError==200)
{
AfxMessageBox("Data updated successfully");
remove(c:\\test.xml");
}
}
解决此问题的任何想法或建议