请问 GET获取网页内容,如何携带cookie 请问 如何实现携带cookie来get网页的内容 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 仅供参考//================================================================= #include <iostream.h> #include <winsock2.h>#pragma comment(lib,"ws2_32.lib")bool InitSock();//=================================================================void main() { InitSock(); SOCKET httpsock = socket(AF_INET , SOCK_STREAM , IPPROTO_TCP); if (INVALID_SOCKET == httpsock) { cout<<"socket error !"<<endl; WSACleanup( ); } SOCKADDR_IN sock_addr = { 0 } ; sock_addr.sin_family = AF_INET ; sock_addr.sin_port = htons(80) ; sock_addr.sin_addr.S_un.S_addr = inet_addr("119.75.217.109"); //获得的IP地址 int res = connect(httpsock , (sockaddr *)&sock_addr , sizeof(sockaddr)); if (res == SOCKET_ERROR) { cout<<"connect error !"<<endl; closesocket(httpsock); WSACleanup( ); } char buf[] = "GET /index.html HTTP/1.1\r\n" "Cookie: BAIDUID=BC3ABCFD415152A40443C8D92282B796:FG=1\r\n" ; // cookie "Host:http://www.baidu.com\r\n\r\n" ; // http请求头 int num = send( httpsock , buf , strlen(buf)+1 , 0 ) ; if (SOCKET_ERROR == num) { cout<<"send error !"<<endl; closesocket(httpsock); WSACleanup( ); } char recvbuf[2048] = {0} ; while(1) { num = recv(httpsock , recvbuf , 2048 , 0); if (SOCKET_ERROR == num) { break ; } else cout<<recvbuf; memset(recvbuf , 0 ,2048); } closesocket(httpsock); WSACleanup( ); }//==================================================================bool InitSock(){ WORD wVersionRequested; WSADATA wsaData; int err; wVersionRequested = MAKEWORD( 2, 2 ); err = WSAStartup( wVersionRequested, &wsaData ); if ( err != 0 ) { return false; } if ( LOBYTE( wsaData.wVersion ) != 2 || HIBYTE( wsaData.wVersion ) != 2 ) { WSACleanup( ); return false; } return true; } 这个你看看:#include <iostream.h> #include <afx.h>#include <afxinet.h>void main() { char Headers[] = "Cookie: BAIDUID=BC3ABCFD415152A40443C8D92282B796:FG=1\r\n\r\n"; CInternetSession sess(_TEXT("")); CHttpFile* file = (CHttpFile*)sess.OpenURL(_TEXT("http://www.baidu.com/s?wd=27.5"), 1, INTERNET_FLAG_TRANSFER_ASCII,Headers); CString str; while (file->ReadString(str)) { cout << str.GetBuffer(0) << endl; } file->Close(); } 父类判断类型错误 模拟鼠标出现了问题 关于MFC宏:AFX_MANAGE_STATE(AfxGetManageState()) 这样写存储过程来调用,为什么不对呢? 如何将long型转换为CTime或time_t 奇怪啊?! ???求教?怎样判断软盘存在? 50分相送~,我用了CFileFind 但不能达到效果 VC中能修改SQL SERVER 中用户密码吗?,如何实现. 为什么在vista business 版本中不能运行directshow程序? 100分,求解竞赛问题(一)。 如何去掉VPN的“在远程网络上使用默认网关” 全部积分只有这些。 怎样创建一个模态对话框,类似于登录框
//=================================================================
#include <iostream.h>
#include <winsock2.h>#pragma comment(lib,"ws2_32.lib")
bool InitSock();
//=================================================================
void main()
{
InitSock(); SOCKET httpsock = socket(AF_INET , SOCK_STREAM , IPPROTO_TCP);
if (INVALID_SOCKET == httpsock)
{
cout<<"socket error !"<<endl;
WSACleanup( );
} SOCKADDR_IN sock_addr = { 0 } ;
sock_addr.sin_family = AF_INET ;
sock_addr.sin_port = htons(80) ;
sock_addr.sin_addr.S_un.S_addr = inet_addr("119.75.217.109"); //获得的IP地址 int res = connect(httpsock , (sockaddr *)&sock_addr , sizeof(sockaddr));
if (res == SOCKET_ERROR)
{
cout<<"connect error !"<<endl;
closesocket(httpsock);
WSACleanup( );
} char buf[] =
"GET /index.html HTTP/1.1\r\n"
"Cookie: BAIDUID=BC3ABCFD415152A40443C8D92282B796:FG=1\r\n" ; // cookie
"Host:http://www.baidu.com\r\n\r\n" ; // http请求头 int num = send( httpsock , buf , strlen(buf)+1 , 0 ) ;
if (SOCKET_ERROR == num)
{
cout<<"send error !"<<endl;
closesocket(httpsock);
WSACleanup( );
} char recvbuf[2048] = {0} ;
while(1)
{
num = recv(httpsock , recvbuf , 2048 , 0);
if (SOCKET_ERROR == num)
{
break ;
}
else cout<<recvbuf;
memset(recvbuf , 0 ,2048);
}
closesocket(httpsock);
WSACleanup( );
}//==================================================================
bool InitSock()
{
WORD wVersionRequested;
WSADATA wsaData;
int err;
wVersionRequested = MAKEWORD( 2, 2 );
err = WSAStartup( wVersionRequested, &wsaData );
if ( err != 0 ) {
return false;
}
if ( LOBYTE( wsaData.wVersion ) != 2 ||
HIBYTE( wsaData.wVersion ) != 2 ) {
WSACleanup( );
return false;
}
return true;
}
#include <iostream.h>
#include <afx.h>
#include <afxinet.h>void main()
{
char Headers[] = "Cookie: BAIDUID=BC3ABCFD415152A40443C8D92282B796:FG=1\r\n\r\n"; CInternetSession sess(_TEXT(""));
CHttpFile* file = (CHttpFile*)sess.OpenURL(_TEXT("http://www.baidu.com/s?wd=27.5"),
1, INTERNET_FLAG_TRANSFER_ASCII,Headers); CString str; while (file->ReadString(str))
{
cout << str.GetBuffer(0) << endl;
}
file->Close();
}