私のコードは、 vc++ を使用して xml データをサーバーに投稿する必要があります。投稿には CInternetSession を使用し、xml には tinyxml を使用しています。
私の 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");
}
}
この問題を解決するためのアイデアや提案