zoukankan      html  css  js  c++  java
  • WinINet function(2)Request

    参考此文档:http://wenku.baidu.com/view/4f3558edf8c75fbfc77db229.html

    参考:http://wenku.baidu.com/view/b5364b87ec3a87c24028c438.html

    InternetOpenUrl的内部

    1.InternetConnect

    Opens an File Transfer Protocol (FTP), Gopher, or HTTP session for a given site.

    2.HttpOpenRequest

    Creates an HTTP request handle.

    3.HttpSendRequest

    Sends the specified request to the HTTP server.

    4.HttpQueryInfo

    Retrieves header information associated with an HTTP request.

    Demo

    HINTERNET hInternet = InternetOpen("HttpAuth Sample",             // app name
            INTERNET_OPEN_TYPE_PRECONFIG,  // access type
            NULL,                          // proxy server
            0,                             // proxy port
            0);                            // flags
    
    HINTERNET hConnect = ::InternetConnect(hInternet,
                                        "www.microsoft.com",
                                        INTERNET_INVALID_PORT_NUMBER,
                                        "",
                                        "",
                                        INTERNET_SERVICE_HTTP,
                                        0,
                                        0) ;
    
    HINTERNET hHttpFile = ::HttpOpenRequest(hConnect,
                                            "GET",
                                            "/MSDN/MSDNINFO/",
                                            HTTP_VERSION,
                                            NULL,
                                            0,
                                            INTERNET_FLAG_DONT_CACHE,
                                            0) ;
    BOOL bSendRequest = ::HttpSendRequest(hHttpFile, NULL, 0, 0, 0);
    
    // Get the length of the file.            
    char bufQuery[32] ;
    DWORD dwLengthBufQuery = sizeof(bufQuery);
    BOOL bQuery = ::HttpQueryInfo(hHttpFile,
                                  HTTP_QUERY_CONTENT_LENGTH, 
                                  bufQuery, 
                                  &dwLengthBufQuery,NULL) ;
    
    // Convert length from ASCII string to a DWORD.
    DWORD dwFileSize = (DWORD)atol(bufQuery) ;
    // Allocate a buffer for the file.   
    
    char* buffer = new char[dwFileSize+1] ;
    
    // Read the file into the buffer. 
    DWORD dwBytesRead ;
    BOOL bRead = ::InternetReadFile(hHttpFile,
                                    buffer,
                                    dwFileSize+1, 
                                    &dwBytesRead);
    buffer[dwBytesRead] = 0 ;

    Other functions

    HttpAddRequestHeaders

    Adds one or more HTTP request headers to the HTTP request handle.

    参考:http://www.cnblogs.com/songsu/articles/1346782.html

    InternetSetCookie

    Creates a cookie associated with the specified URL.

    InternetGetCookie

    Retrieves the cookie for the specified URL.

    BOOL res=InternetSetCookie("http://www.microsoft.com","a","test");
    TCHAR cookie[1024];
    DWORD leh;
    res=InternetGetCookie("http://www.microsoft.com",NULL,cookie,&leh);
  • 相关阅读:
    Python 知识要点:函数
    软件测试
    软件测试
    软件测试
    SpringBoot框架
    Redis存储系统
    Linux系统
    maven
    shiro安全框架
    Mybatis框架
  • 原文地址:https://www.cnblogs.com/Clingingboy/p/2265348.html
Copyright © 2011-2022 走看看