Здравствуйте, pominub, Вы писали:
P>Спасибо.
P>Только у меня несколько вопросов:
P>1. Я имею дело с методом POST. Тогда мне вместо CHttpConnection::HTTP_VERB_GET
P>следует поставить CHttpConnection::HTTP_VERB_POST?
P>2. Что значат параметры:
P> strObject
P>(LPVOID)(LPCTSTR)strParams
P> strParams.GetLength()???
P>Спасибо
Не хотелось бы MSDN цитировать, да лучше я и объяснить не смогу. Лучше посмотрите на код:
const int MAXBUF=524288;
...
CString LoadFile(const CString& URL, const CString& Login, const CString& Password)
{
char data[MAXBUF];
UINT nBytesRead = 0;
CInternetSession session;
CHttpConnection* pConnection;
CHttpFile* pFile1=NULL;
INTERNET_PORT nPort;
DWORD serviceType;
CString strServer,strObject;
AfxParseURL(URL,serviceType,strServer,strObject,nPort);
CString strParams="";
//strParams заполняется для POST запроса
try {
pConnection=session.GetHttpConnection(strServer,nPort,Login,Password);
pFile1=pConnection->OpenRequest(CHttpConnection::HTTP_VERB_GET,strObject);
//или pFile1=pConnection->OpenRequest(CHttpConnection::HTTP_VERB_POST,strObject);
BOOL result = pFile1->SendRequest(NULL,0,(LPVOID)(LPCTSTR)strParams, strParams.GetLength());
nBytesRead+=pFile1->Read(data+nBytesRead, 1024);
int old=1;
while(old != 0) {
old=pFile1->Read(data+nBytesRead, 1024);
nBytesRead+=old;
}
data[nBytesRead] = '\0';
}
catch(CInternetException* e) {
e->Delete();
//....
}
pFile1->Close();
if(pFile1) delete pFile1;
pConnection->Close();
if(pConnection) delete pConnection;
session.Close();
return data;
}
Так как пишу по памяти, возможны баги. Поэкспериментируйте и Вам сразу все станет понятно.
... << Rsdn@Home 1.1.4 beta 1 >>