本例使用CWinInet类发送一HTTP请求,获取并显示相应的HTTP响应。
创建一个基于对话框的项目,添加两个文本框和两个按钮,如下图所示。
发送请求按钮的单击消息的消息处理函数如下所示。
void CDemoDlg::OnSendRequest() { const MAXBUF = 4096; CInternetSession session; CHttpConnection* pConnection = NULL; CHttpFile* pFile = NULL; char* buffer = new char[MAXBUF]; UINT nBytesRead = 0; CString strServer, strObject; unsigned short nPort; DWORD dwServiceType; UpdateData(TRUE); if(m_strRequest.IsEmpty()) return; if(!AfxParseURL(m_strRequest, dwServiceType, strServer, strObject, nPort)) { MessageBox("HTTP请求解析失败,请重新输入!"); return; } try { pConnection = session.GetHttpConnection((LPCTSTR)strServer, nPort); pFile = pConnection->OpenRequest(1, strObject); pFile->SendRequest(); nBytesRead = pFile->Read(buffer, MAXBUF - 1); buffer[nBytesRead] = '\0'; m_strResponse = buffer; UpdateData(FALSE); } catch(CInternetException* e) { e->Delete(); } if(pFile) delete pFile; if(pConnection) delete pConnection; delete [] buffer; return; }