VC http请求

场景:

如何用VC发送http请求?
哦是新手,请说详细点,例如我想向查询IP网站www.ip866.com发送一个IP,然后获得它返回的信息写入文本中,用VC如何实现,谢谢了!

------解决方案--------------------
//设置代理 
//参数分别为:代理服务器地址,端口号,用户名,密码 
//用到的变量说明: 
//sess为CInternetSession变量 
//pConnect为CHttpConnection变量 
//pFile 为CHttpFile变量 
int TMTNHTTPProtocol::SetProxy(char* proxyAddr, char* proxyPort, char* proxyUser, char* proxyPassword) 

char tmp[1024]; 
INTERNET_PROXY_INFO proxyinfo; 

try 

memset(tmp, 0, 1024); 
proxyinfo.dwAccessType = INTERNET_OPEN_TYPE_PROXY; 
strcat(tmp , proxyAddr); 
strcat(tmp , ":"); 
strcat(tmp , proxyPort); 
proxyinfo.lpszProxy = tmp; 
proxyinfo.lpszProxyBypass = NULL; 

if (! sess.SetOption(INTERNET_OPTION_PROXY, (LPVOID)&proxyinfo, sizeof(INTERNET_PROXY_INFO))) 

return 0; 



pConnect = sess.GetHttpConnection("www.baidu.com", INTERNET_FLAG_NO_AUTO_REDIRECT, 80); 


pFile = pConnect->OpenRequest(CHttpConnection::HTTP_VERB_POST, pUrl); 

if (!pFile->SetOption(INTERNET_OPTION_PROXY_USERNAME, proxyUser, strlen(proxyUser) + 1)) 

return 0; 


if (!pFile->SetOption(INTERNET_OPTION_PROXY_PASSWORD, proxyPassword, strlen(proxyPassword) + 1)) 

return 0; 


return 1; 

catch(...) 

return 0; 


}
------解决方案--------------------
先正常连接到服务器对应的端口,保证物理连接的正常;然后自己构造要发送的内容,头部都是 ANSI 字符串,如 "GET ...",然后将所构造的块 send / WSASend 出去就可以了,正常情况下,服务器马上就会发回一个回应,也是字符串形式的,告诉你是否接受你的请求。

先理解 HTTP 协议内容吧。