zoukankan      html  css  js  c++  java
  • winhttp简单用法(1)header

    #include <string>
    #include <iostream>
    #include <windows.h>
    #include <winhttp.h> 
    #pragma comment(lib,"winhttp.lib")
    #pragma comment(lib,"user32.lib")
    
    
    void main()
    {
    
    	
        DWORD dwSize = 0;
    	LPVOID lpOutBuffer = NULL;
    	HINTERNET  hSession = NULL,
    			   hConnect = NULL,
    			   hRequest = NULL;
    
    	BOOL  bResults = FALSE;
    
    	hSession=WinHttpOpen(L"User Agent",WINHTTP_ACCESS_TYPE_DEFAULT_PROXY,WINHTTP_NO_PROXY_NAME,WINHTTP_NO_PROXY_BYPASS,0);
    
    	if(hSession)
    	{
    		hConnect=WinHttpConnect(hSession,L"192.168.0.8",INTERNET_DEFAULT_HTTP_PORT,0);
    	}
    
    	if(hConnect)
    	{
    		hRequest=WinHttpOpenRequest(hConnect, L"GET",L"login.html",L"HTTP/1.1", WINHTTP_NO_REFERER,WINHTTP_DEFAULT_ACCEPT_TYPES,0);
    	}
    
    	if(hRequest)
    	{
    		bResults=WinHttpSendRequest(hRequest,WINHTTP_NO_ADDITIONAL_HEADERS, 0,WINHTTP_NO_REQUEST_DATA, 0, 0, 0 );
    	}
    
    	if(bResults)
    	{
    		bResults=WinHttpReceiveResponse(hRequest,NULL);
    
    	}
    
    	
    	if(bResults)
    	{
    		bResults=WinHttpQueryHeaders(hRequest,WINHTTP_QUERY_RAW_HEADERS_CRLF, WINHTTP_HEADER_NAME_BY_INDEX,NULL,&dwSize,WINHTTP_NO_HEADER_INDEX);
    
    		if( GetLastError( ) == ERROR_INSUFFICIENT_BUFFER)
    		{
    			lpOutBuffer = new WCHAR[dwSize/sizeof(WCHAR)];
    			
    			bResults = WinHttpQueryHeaders(hRequest,WINHTTP_QUERY_RAW_HEADERS_CRLF,WINHTTP_HEADER_NAME_BY_INDEX, lpOutBuffer, &dwSize,WINHTTP_NO_HEADER_INDEX);
    		}
    	}
    	
    	if(bResults)
    	{
    		printf("Header contents: \n%S",lpOutBuffer);
    	}
    	
    	delete [] lpOutBuffer;
    
        if (hRequest) WinHttpCloseHandle(hRequest);
        if (hConnect) WinHttpCloseHandle(hConnect);
        if (hSession) WinHttpCloseHandle(hSession);
    
    	
    
    	 system("pause");
    
    
    }
    
  • 相关阅读:
    C++引用小结
    C++关于const的使用以及理解
    python购物车程序的简单程序优化版
    C++文件操作
    python购物车简单小程序
    python学习DAY3(列表)
    C++重载双目运算符(2)(对象与数之间)
    C++重载双目运算符(1)(对象与对象之间)
    C++重载单目运算符
    Elasticsearch 添加数据
  • 原文地址:https://www.cnblogs.com/ytjjyy/p/2480319.html
Copyright © 2011-2022 走看看