请问 如何实现携带cookie来get网页的内容

解决方案 »

  1.   

    仅供参考
    //================================================================= 
    #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;
    }
      

  2.   

    这个你看看:
    #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();

    }