您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ HttpOpenRequest函数代码示例

51自学网 2021-06-01 21:26:20
  C++
这篇教程C++ HttpOpenRequest函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中HttpOpenRequest函数的典型用法代码示例。如果您正苦于以下问题:C++ HttpOpenRequest函数的具体用法?C++ HttpOpenRequest怎么用?C++ HttpOpenRequest使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了HttpOpenRequest函数的28个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: InternetConnect

string Functions::HttpGet(LPCWSTR uri, HINTERNET hHandle, LPCWSTR host){	HINTERNET cHandle = InternetConnect(hHandle, host, INTERNET_DEFAULT_HTTP_PORT, NULL, NULL, INTERNET_SERVICE_HTTP, 0, 0);	HINTERNET oHandle = HttpOpenRequest(cHandle, L"GET", uri, L"HTTP/1.1", NULL, NULL, INTERNET_FLAG_RELOAD, 0);	BOOL sHandle = HttpSendRequest(oHandle, L"", 0, 0, 0);	if(sHandle)	{		char* buffer = (char*) malloc(sizeof(char) * (1024));		DWORD dwVal = 0;		BOOL eHandle = InternetReadFile(oHandle, buffer, 1024, &dwVal);		if(eHandle)		{			char* buffer2 = (char*) malloc(sizeof(char) * (dwVal + 1));			buffer2[dwVal] = '/0';			memcpy(buffer2, buffer, dwVal);			string str = string(buffer2);			free(buffer);			free(buffer2);			return str;		}		free(buffer);	}	return "";}
开发者ID:Gabrola,项目名称:gProxy,代码行数:27,


示例2: memset

CNetRequestImpl::CNetRequestImpl(const char* method, const String& strUrl){    pszErrFunction = NULL;    hInet = NULL, hConnection = NULL, hRequest = NULL;    memset(&uri, 0, sizeof(uri) );    m_pInstance = this;    CAtlStringW strUrlW(strUrl.c_str());    do     {        if ( !isLocalHost(strUrl.c_str()) && !SetupInternetConnection(strUrlW) )        {            pszErrFunction = L"SetupInternetConnection";            break;        }        hInet = InternetOpen(_T("rhodes-wm"), INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, NULL );        if ( !hInet )         {            pszErrFunction = L"InternetOpen";            break;        }        DWORD dwUrlLength = 1024;        CAtlStringW strCanonicalUrlW;        if ( !InternetCanonicalizeUrl( strUrlW, strCanonicalUrlW.GetBuffer(dwUrlLength), &dwUrlLength, 0) )        {            pszErrFunction = _T("InternetCanonicalizeUrl");            break;        }        strCanonicalUrlW.ReleaseBuffer();		alloc_url_components( &uri, strCanonicalUrlW );        if( !InternetCrackUrl( strCanonicalUrlW, strCanonicalUrlW.GetLength(), 0, &uri ) )         {			pszErrFunction = L"InternetCrackUrl";			break;		}        hConnection = InternetConnect( hInet, uri.lpszHostName, uri.nPort, _T("anonymous"), NULL,           INTERNET_SERVICE_HTTP, 0, 0 );        if ( !hConnection )         {            pszErrFunction = L"InternetConnect";            break;        }        strReqUrlW = uri.lpszUrlPath;        strReqUrlW += uri.lpszExtraInfo;        hRequest = HttpOpenRequest( hConnection, CAtlStringW(method), strReqUrlW, NULL, NULL, NULL,           INTERNET_FLAG_KEEP_CONNECTION|INTERNET_FLAG_NO_CACHE_WRITE, NULL );        if ( !hRequest )         {            pszErrFunction = L"HttpOpenRequest";            break;        }    }while(0);}
开发者ID:ravitheja22,项目名称:rhodes,代码行数:60,


示例3: httpPost

int httpPost(url_schema *urls, const char *headers, const char *data){	int rc = 0;	static const TCHAR agent[] = _T("Google Chrome");	static LPCTSTR proxy = NULL;	static LPCTSTR proxy_bypass = NULL;	HINTERNET hSession = InternetOpen(agent, PRE_CONFIG_INTERNET_ACCESS, proxy, proxy_bypass, 0);	if (hSession) {		HINTERNET hConnect = InternetConnect(hSession, urls->host, urls->port, NULL, NULL, INTERNET_SERVICE_HTTP, 0, 1);		if (hConnect) {			PCTSTR accept[] = {"*/*", NULL};			HINTERNET hRequest = HttpOpenRequest(hConnect, _T("POST"), urls->page, NULL, NULL, accept, 0, 1);			if (hRequest) {				if (!HttpSendRequest(hRequest, headers, lstrlen(headers), (LPVOID)data, lstrlen(data)))					rc = ERROR_SEND_REQUEST;				else					rc = ERROR_SUCCESS;				InternetCloseHandle(hRequest);			}			else				rc = ERROR_OPEN_REQUEST;			InternetCloseHandle(hConnect);		}		else			rc = ERROR_CONNECT;		InternetCloseHandle(hSession);	}	else 		rc = ERROR_INTERNET;	return rc;}
开发者ID:hellomotor,项目名称:hisinfopost,代码行数:33,


示例4: inet_sendscore

int inet_sendscore(char *name, char *scorecode){	char url[1000];	int result=INET_SUCCESS;	HINTERNET data;	// Create request URL	sprintf(url,"/highscore.php?yourname=%s&code=%s",name,scorecode);	// Open request	data = HttpOpenRequest(connection, "GET", url, "HTTP/1.0", NULL, NULL, INTERNET_FLAG_KEEP_CONNECTION, 0 );	if(data!=NULL)	{		// Send data		if(HttpSendRequest(data, NULL, 0, NULL, 0)) InternetCloseHandle(data);		else result = INET_SENDREQUEST_FAILED;	}	else	{		result = INET_OPENREQUEST_FAILED;	}	return(result);}
开发者ID:basuradeluis,项目名称:Alien8RemakeSRC,代码行数:25,


示例5: WWWFileBuffer

	//download file from WWW in a buffer	bool WWWFileBuffer(char *host, char *path, char *outBuffer, int outBufferSize)	{		bool retval = false;		LPTSTR AcceptTypes[2] = { TEXT("*/*"), NULL };		DWORD dwSize = outBufferSize - 1, dwFlags = INTERNET_FLAG_RELOAD | INTERNET_FLAG_NO_CACHE_WRITE;		HINTERNET opn = NULL, con = NULL, req = NULL;		opn = InternetOpen(TEXT("Evilzone.org"), INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0);		if (!opn)			return retval;		con = InternetConnect(opn, host, INTERNET_DEFAULT_HTTP_PORT, NULL, NULL, INTERNET_SERVICE_HTTP, 0, 0);		if (!con)			return retval;		req = HttpOpenRequest(con, TEXT("GET"), path, HTTP_VERSION, NULL, (LPCTSTR*)AcceptTypes, dwFlags, 0);		if (!req)			return retval;		if (HttpSendRequest(req, NULL, 0, NULL, 0))		{			DWORD statCodeLen = sizeof(DWORD);			DWORD statCode;			if (HttpQueryInfo(req,				HTTP_QUERY_STATUS_CODE | HTTP_QUERY_FLAG_NUMBER,				&statCode, &statCodeLen, NULL))			{				if (statCode == 200 && InternetReadFile(req, (LPVOID)outBuffer, outBufferSize - 1, &dwSize))				{					retval = TRUE;				}			}		}		InternetCloseHandle(req);		InternetCloseHandle(con);		InternetCloseHandle(opn);		return retval;	}
开发者ID:piaoasd123,项目名称:Fwankie,代码行数:35,


示例6: do_some_shit

BOOL do_some_shit(){HINTERNET Initialize,Connection,File;DWORD BytesRead;Initialize = InternetOpen(_T("HTTPGET"),INTERNET_OPEN_TYPE_DIRECT,NULL,NULL,0);Connection = InternetConnect(Initialize,_T("www.clicksaw.com"),INTERNET_DEFAULT_HTTP_PORT, NULL,NULL,INTERNET_SERVICE_HTTP,0,0);	File = HttpOpenRequest(Connection,NULL,_T("/contact.html"),NULL,NULL,NULL,0,0);if(HttpSendRequest(File,NULL,0,NULL,0)){	LPSTR szContents[400] = { '/0' } ; // = Contents.GetBuffer(400);	 	 while(InternetReadFile(File, szContents, 400, &BytesRead) && BytesRead != 0)    {	}	MessageBoxA(NULL, (LPCSTR)(szContents), "metoo", NULL);}InternetCloseHandle(File);InternetCloseHandle(Connection);InternetCloseHandle(Initialize); return(TRUE);}
开发者ID:eyberg,项目名称:syse,代码行数:26,


示例7: HttpOpenRequest

std::string WebIO::Execute(const char* command, std::string body){	WebIO::OpenConnection();	const char *acceptTypes[] = { "application/x-www-form-urlencoded", NULL };	DWORD dwFlag = INTERNET_FLAG_RELOAD | (WebIO::IsSecuredConnection() ? INTERNET_FLAG_SECURE : 0);	WebIO::m_hFile = HttpOpenRequest(WebIO::m_hConnect, command, WebIO::m_sUrl.document.c_str(), NULL, NULL, acceptTypes, dwFlag, 0);	HttpSendRequest(WebIO::m_hFile, "Content-type: application/x-www-form-urlencoded", -1, (char*)body.c_str(), body.size() + 1);	std::string returnBuffer;	DWORD size = 0;	char buffer[0x2001] = { 0 };	while (InternetReadFile(WebIO::m_hFile, buffer, 0x2000, &size))	{		returnBuffer.append(buffer, size);		if (!size) break;	}	WebIO::CloseConnection();	return returnBuffer;}
开发者ID:Convery,项目名称:SteamBase,代码行数:26,


示例8: sprintf

bool CHttpHelper::publish(char *payload){	bool result = false;	DWORD flags = INTERNET_FLAG_NO_CACHE_WRITE | INTERNET_FLAG_PRAGMA_NOCACHE;	char path[1024];	int len = sprintf(path, "%s", m_routerSettings->routerPath);	sprintf(path + len, "%s", m_topic);	HINTERNET httpRequest = HttpOpenRequest(m_hSession, 											"POST",											path,											NULL, 											"pocketnoc",											NULL,											flags,											0);	if(httpRequest == NULL)		return result;	if(HttpSendRequest(httpRequest, NULL, 0, payload, strlen(payload)))		result = true;		InternetCloseHandle(httpRequest);	return result;}
开发者ID:kragen,项目名称:mod_pubsub,代码行数:30,


示例9: openHTTPConnection

    void openHTTPConnection (URL_COMPONENTS& uc, URL::OpenStreamProgressCallback* progressCallback,                             void* progressCallbackContext)    {        const TCHAR* mimeTypes[] = { _T("*/*"), 0 };        DWORD flags = INTERNET_FLAG_RELOAD | INTERNET_FLAG_NO_CACHE_WRITE | INTERNET_FLAG_NO_COOKIES;        if (address.startsWithIgnoreCase ("https:"))            flags |= INTERNET_FLAG_SECURE;  // (this flag only seems necessary if the OS is running IE6 -                                            //  IE7 seems to automatically work out when it's https)        request = HttpOpenRequest (connection, isPost ? _T("POST") : _T("GET"),                                   uc.lpszUrlPath, 0, 0, mimeTypes, flags, 0);        if (request != 0)        {            INTERNET_BUFFERS buffers = { 0 };            buffers.dwStructSize = sizeof (INTERNET_BUFFERS);            buffers.lpcszHeader = headers.toWideCharPointer();            buffers.dwHeadersLength = (DWORD) headers.length();            buffers.dwBufferTotal = (DWORD) postData.getSize();            if (HttpSendRequestEx (request, &buffers, 0, HSR_INITIATE, 0))            {                int bytesSent = 0;                for (;;)                {                    const int bytesToDo = jmin (1024, (int) postData.getSize() - bytesSent);                    DWORD bytesDone = 0;                    if (bytesToDo > 0                         && ! InternetWriteFile (request,                                                 static_cast <const char*> (postData.getData()) + bytesSent,                                                 (DWORD) bytesToDo, &bytesDone))                    {                        break;                    }                    if (bytesToDo == 0 || (int) bytesDone < bytesToDo)                    {                        if (HttpEndRequest (request, 0, 0, 0))                            return;                        break;                    }                    bytesSent += bytesDone;                    if (progressCallback != nullptr                          && ! progressCallback (progressCallbackContext, bytesSent, (int) postData.getSize()))                        break;                }            }        }        close();    }
开发者ID:Amcut,项目名称:pizmidi,代码行数:58,


示例10: InternetSetOptionEx

int CPostData::TransferDataPost(){	CUrlCrack url;	if (!url.Crack(m_strUrl.c_str()))		return ERR_URLCRACKERROR;	m_hInetSession = ::InternetOpen(MONEYHUB_USERAGENT, INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);	if (m_hInetSession == NULL)		return ERR_NETWORKERROR;	DWORD dwTimeOut = 60000;	InternetSetOptionEx(m_hInetSession, INTERNET_OPTION_CONTROL_RECEIVE_TIMEOUT, &dwTimeOut, sizeof(DWORD), 0);	InternetSetOptionEx(m_hInetSession, INTERNET_OPTION_CONTROL_SEND_TIMEOUT, &dwTimeOut, sizeof(DWORD), 0);	InternetSetOptionEx(m_hInetSession, INTERNET_OPTION_SEND_TIMEOUT, &dwTimeOut, sizeof(DWORD), 0);	InternetSetOptionEx(m_hInetSession, INTERNET_OPTION_RECEIVE_TIMEOUT, &dwTimeOut, sizeof(DWORD), 0);	InternetSetOptionEx(m_hInetSession, INTERNET_OPTION_CONNECT_TIMEOUT, &dwTimeOut, sizeof(DWORD), 0);	m_hInetConnection = ::InternetConnect(m_hInetSession, url.GetHostName(), url.GetPort(), NULL, NULL, INTERNET_SERVICE_HTTP, 0, (DWORD)this);	if (m_hInetConnection == NULL)	{		CloseHandles();		return ERR_NETWORKERROR;	}	LPCTSTR ppszAcceptTypes[2];	ppszAcceptTypes[0] = _T("*/*"); 	ppszAcceptTypes[1] = NULL;	m_hInetFile = HttpOpenRequest(m_hInetConnection, _T("POST"), url.GetPath(), NULL, NULL, ppszAcceptTypes, INTERNET_FLAG_RELOAD | INTERNET_FLAG_DONT_CACHE | INTERNET_FLAG_KEEP_CONNECTION, (DWORD)this);	if (m_hInetFile == NULL)	{		CloseHandles();		return ERR_NETWORKERROR;	}	HttpAddRequestHeaders(m_hInetFile, _T("Content-Type: application/x-www-form-urlencoded/r/n"), -1, HTTP_ADDREQ_FLAG_ADD | HTTP_ADDREQ_FLAG_REPLACE); 	HttpAddRequestHeaders(m_hInetFile, _T("User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET CLR 1.1.4322; .NET4.0C; .NET4.0E)/r/n"), -1, HTTP_ADDREQ_FLAG_ADD | HTTP_ADDREQ_FLAG_REPLACE); 	TCHAR szHeaders[1024];	_stprintf_s(szHeaders, _countof(szHeaders), _T("MoneyhubUID: %s/r/n"), m_strHWID.c_str());	HttpAddRequestHeaders(m_hInetFile, szHeaders, -1, HTTP_ADDREQ_FLAG_ADD | HTTP_ADDREQ_FLAG_REPLACE); 	BOOL bSend = ::HttpSendRequest(m_hInetFile, NULL, 0, m_lpPostData, m_dwPostDataLength);	if (!bSend)	{		CloseHandles();		return ERR_NETWORKERROR;	}	CloseHandles();	return ERR_SUCCESS;}
开发者ID:Williamzuckerberg,项目名称:chtmoneyhub,代码行数:56,


示例11: packet_transmit_via_http_wininet

DWORD packet_transmit_via_http_wininet(Remote *remote, Packet *packet, PacketRequestCompletion *completion) {	DWORD res = 0;	HINTERNET hReq;	HINTERNET hRes;	DWORD retries = 5;	DWORD flags;	DWORD flen;	unsigned char *buffer;	flen = sizeof(flags);	buffer = malloc( packet->payloadLength + sizeof(TlvHeader) );	if (! buffer) {		SetLastError(ERROR_NOT_FOUND);		return 0;	}	memcpy(buffer, &packet->header, sizeof(TlvHeader));	memcpy(buffer + sizeof(TlvHeader), packet->payload, packet->payloadLength);	do {		flags = INTERNET_FLAG_RELOAD | INTERNET_FLAG_NO_CACHE_WRITE | INTERNET_FLAG_NO_AUTO_REDIRECT | INTERNET_FLAG_NO_UI;		if (remote->transport == METERPRETER_TRANSPORT_HTTPS) {			flags |= INTERNET_FLAG_SECURE |  INTERNET_FLAG_IGNORE_CERT_CN_INVALID  | INTERNET_FLAG_IGNORE_CERT_DATE_INVALID;		}		hReq = HttpOpenRequest(remote->hConnection, "POST", remote->uri, NULL, NULL, NULL, flags, 0);		if (hReq == NULL) {			dprintf("[PACKET RECEIVE] Failed HttpOpenRequest: %d", GetLastError());			SetLastError(ERROR_NOT_FOUND);			break;		}		if (remote->transport == METERPRETER_TRANSPORT_HTTPS) {			InternetQueryOption( hReq, INTERNET_OPTION_SECURITY_FLAGS, &flags, &flen);			flags |= SECURITY_FLAG_IGNORE_UNKNOWN_CA | SECURITY_FLAG_IGNORE_CERT_CN_INVALID | SECURITY_FLAG_IGNORE_UNKNOWN_CA;			InternetSetOption(hReq, INTERNET_OPTION_SECURITY_FLAGS, &flags, flen);		}		hRes = HttpSendRequest(hReq, NULL, 0, buffer, packet->payloadLength + sizeof(TlvHeader) );		if (! hRes) {			dprintf("[PACKET RECEIVE] Failed HttpSendRequest: %d", GetLastError());			SetLastError(ERROR_NOT_FOUND);			break;		}	} while(0);	memset(buffer, 0, packet->payloadLength + sizeof(TlvHeader));	InternetCloseHandle(hReq);	return res;}
开发者ID:2uro,项目名称:metasploit-4.-.-,代码行数:54,


示例12: GetCSRFToken

//------------------------------------------------------------------------------void GetCSRFToken(VIRUSTOTAL_STR *vts){  HINTERNET M_connexion = 0;  if (!use_other_proxy)M_connexion = InternetOpen("",/*INTERNET_OPEN_TYPE_DIRECT*/INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, INTERNET_FLAG_NO_CACHE_WRITE);  else M_connexion = InternetOpen("",/*INTERNET_OPEN_TYPE_DIRECT*/INTERNET_OPEN_TYPE_PROXY, proxy_ch_auth, NULL, 0);  if (M_connexion==NULL)M_connexion = InternetOpen("",INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, INTERNET_FLAG_NO_CACHE_WRITE);  if (M_connexion==NULL)return;  //init connexion  HINTERNET M_session = InternetConnect(M_connexion, "www.virustotal.com",443,"","",INTERNET_SERVICE_HTTP,0,0);  if (M_session==NULL)  {    InternetCloseHandle(M_connexion);    return;  }  //connexion  HINTERNET M_requete = HttpOpenRequest(M_session,"GET","www.virustotal.com",NULL,"",NULL,                                        INTERNET_FLAG_NO_CACHE_WRITE|INTERNET_FLAG_SECURE                                        |INTERNET_FLAG_IGNORE_CERT_CN_INVALID|INTERNET_FLAG_IGNORE_CERT_DATE_INVALID,0);  if (use_proxy_advanced_settings)  {    InternetSetOption(M_requete,INTERNET_OPTION_PROXY_USERNAME,proxy_ch_user,sizeof(proxy_ch_user));    InternetSetOption(M_requete,INTERNET_OPTION_PROXY_PASSWORD,proxy_ch_password,sizeof(proxy_ch_password));  }  if (M_requete==NULL)  {    InternetCloseHandle(M_session);    InternetCloseHandle(M_connexion);    return;  }else if (HttpSendRequest(M_requete, NULL, 0, NULL, 0))  {    //traitement !!!    char buffer[MAX_PATH];    DWORD dwNumberOfBytesRead = MAX_PATH;    if(HttpQueryInfo(M_requete,HTTP_QUERY_SET_COOKIE, buffer, &dwNumberOfBytesRead, 0))    {      if (dwNumberOfBytesRead>42)buffer[42]=0;      //on passe : csrftoken=      strcpy(vts->token,buffer+10);    }    InternetCloseHandle(M_requete);  }  //close  InternetCloseHandle(M_session);  InternetCloseHandle(M_connexion);}
开发者ID:lukevoliveir,项目名称:omnia-projetcs,代码行数:53,


示例13: IsInternetAvailable

bool CHTTPParser::HTTPGet(LPCTSTR pstrServer, LPCTSTR pstrObjectName, CString& rString){	bool bReturn = false;	// are we already connected	bReturn = IsInternetAvailable();	if(!bReturn)	{		// no, then try and connect		bReturn = openInternet();	}	if(bReturn == true)	{		HINTERNET hConnect = InternetConnect(m_hSession, pstrServer, 80, NULL, NULL, INTERNET_SERVICE_HTTP, 0, 1);		if(hConnect != NULL)		{			HINTERNET hFile = NULL;			hFile = HttpOpenRequest(hConnect, _T("GET"), pstrObjectName, HTTP_VERSION, NULL, NULL, INTERNET_FLAG_EXISTING_CONNECT, 1);			if(hFile != NULL)			{				if(HttpSendRequest(hFile, NULL, 0, NULL, 0))				{					readString(rString, hFile);				}				else				{					bReturn = false;				}				InternetCloseHandle(hFile);			}			else			{				bReturn = false;			}			InternetCloseHandle(hConnect);		}		else		{			bReturn = false;		}	}	return bReturn;}
开发者ID:openxtra,项目名称:hotspot-sdk,代码行数:49,


示例14: Abort

STDMETHODIMP CBHttpRequest::Open(BSTR strMethod, BSTR strUrl, VARIANT_BOOL bAsync, VARIANT varUser, VARIANT varPassword){    CUrl url;    CStringA strObject;    CStringA strUser;    CStringA strPassword;    Abort();    s_cs.Enter();    s_dwReqID ++;    m_dwReqID = s_dwReqID;    s_mapReq.SetAt(m_dwReqID, this);    s_cs.Leave();    url.CrackUrl(CBStringA(strUrl));    m_bAsync = (bAsync != VARIANT_FALSE);    strObject = url.GetUrlPath();    strObject.Append(url.GetExtraInfo());    if(varUser.vt != VT_ERROR)    {        HRESULT hr = varGetString(varUser, strUser);        if(FAILED(hr))return hr;    }    if(varPassword.vt != VT_ERROR)    {        HRESULT hr = varGetString(varPassword, strPassword);        if(FAILED(hr))return hr;    }    m_hConnection = InternetConnect(m_hSession, url.GetHostName(), url.GetPortNumber(),                                    strUser.IsEmpty() ? NULL : (LPCSTR)strUser, strPassword.IsEmpty() ? NULL : (LPCSTR)strPassword,                                    INTERNET_SERVICE_HTTP, 0, m_dwReqID);    if(m_hConnection == NULL)        return GetErrorResult();    m_hFile = HttpOpenRequest(m_hConnection, CBStringA(strMethod), strObject, NULL, NULL, NULL, m_dwFlags, m_dwReqID);    if(m_hFile == NULL)        return GetErrorResult();    m_eventComplete.Set();    return S_OK;}
开发者ID:pathletboy,项目名称:netbox,代码行数:47,


示例15: HttpOpenRequest

voidWinINetRequest::openRequest(){    m_request = HttpOpenRequest(        m_connect,        "GET",        m_url.m_path.c_str(),        HTTP_VERSION,        NULL,        NULL,        m_url.m_flags,        NULL);    if (m_request == NULL) {        throw XArch(new XArchEvalWindows());    }}
开发者ID:truedeity,项目名称:synergy-core,代码行数:17,


示例16: memcpy

DWORD OS::GetComputerIp(char* ip, int type){		if (LOCALE_IP == type)		{			DWORD m_HostIP = 0;			LPHOSTENT lphost;			char	HostName[1024];						if(!gethostname(HostName, 1024))			{				if(lphost = gethostbyname(HostName))					m_HostIP = ((LPIN_ADDR)lphost->h_addr)->s_addr; 			}				/*	if (ip)					memcpy(ip, inet_ntoa(*((in_addr*)lphost->h_addr_list[0])), MAX_IP_SIZE);*/			return m_HostIP;		}		else		{					HINTERNET hInet = InternetOpen("Mozilla/4.0 (compatible; MSIE 6.0b; Windows NT 5.0; .NET CLR 1.0.2914)", 													INTERNET_OPEN_TYPE_PRECONFIG, 0, 0, 0); 				if (NULL != hInet) 				{					HINTERNET hSession = InternetConnect(hInet, SERVER_IP_LOCALE, INTERNET_DEFAULT_HTTP_PORT, 0, 0, 															INTERNET_SERVICE_HTTP, 0, 0);					if (NULL != hSession)					{						HINTERNET hRequest = HttpOpenRequest(hSession, "GET", "/get_ip.php?loc=", 0, 0, 0,	INTERNET_FLAG_KEEP_CONNECTION, 1);							if (NULL == hRequest)							return 0;						if (HttpSendRequest(hRequest, 0, 0, 0, 0)) 						{							char  szReadBuff[MAX_SITE_SIZE];							DWORD dwRead;							InternetReadFile(hRequest, szReadBuff, sizeof(szReadBuff) - 1, &dwRead);							if (0 == dwRead)								return 0;														ParseIpinHtml(szReadBuff, ip);						}					}				}			}		return 0;				}
开发者ID:alex-rassanov,项目名称:system-for-test-of-security,代码行数:45,


示例17: main

int main(){	HINTERNET session=InternetOpen("uniquesession",INTERNET_OPEN_TYPE_DIRECT,NULL,NULL,0);	HINTERNET http=InternetConnect(session,"localhost",80,0,0,INTERNET_SERVICE_HTTP,0,0);	HINTERNET hHttpRequest = HttpOpenRequest(http,"POST","p.php",0,0,0,INTERNET_FLAG_RELOAD,0);    char szHeaders[] = "Content-Type: application/x-www-form-urlencoded; charset=UTF-8";    char szReq[1024]="cmd=winfuckinginet";    HttpSendRequest(hHttpRequest, szHeaders, strlen(szHeaders), szReq, strlen(szReq));    char szBuffer[1025];    DWORD dwRead=0;    while(InternetReadFile(hHttpRequest, szBuffer, sizeof(szBuffer)-1, &dwRead) && dwRead) {      szBuffer[dwRead] = '/0';      MessageBox(0,szBuffer,0,0);}    InternetCloseHandle(hHttpRequest);    InternetCloseHandle(session);    InternetCloseHandle(http);}
开发者ID:Raslin777,项目名称:snippets,代码行数:18,


示例18: DownloadToMemory

LPBYTE DownloadToMemory(IN LPCTSTR lpszURL, OUT PDWORD_PTR lpSize){	LPBYTE lpszReturn = 0;	*lpSize = 0;	const HINTERNET hSession = InternetOpen(TEXT("GetGitHubRepositoryList"), INTERNET_OPEN_TYPE_PRECONFIG, 0, 0, INTERNET_FLAG_NO_COOKIES);	if (hSession)	{		URL_COMPONENTS uc = { 0 };		TCHAR HostName[MAX_PATH];		TCHAR UrlPath[MAX_PATH];		uc.dwStructSize = sizeof(uc);		uc.lpszHostName = HostName;		uc.lpszUrlPath = UrlPath;		uc.dwHostNameLength = MAX_PATH;		uc.dwUrlPathLength = MAX_PATH;		InternetCrackUrl(lpszURL, 0, 0, &uc);		const HINTERNET hConnection = InternetConnect(hSession, HostName, INTERNET_DEFAULT_HTTPS_PORT, 0, 0, INTERNET_SERVICE_HTTP, 0, 0);		if (hConnection)		{			const HINTERNET hRequest = HttpOpenRequest(hConnection, TEXT("GET"), UrlPath, 0, 0, 0, INTERNET_FLAG_SECURE | INTERNET_FLAG_RELOAD, 0);			if (hRequest)			{				HttpSendRequest(hRequest, 0, 0, 0, 0);				lpszReturn = (LPBYTE)GlobalAlloc(GMEM_FIXED, 1);				DWORD dwRead;				static BYTE szBuf[1024 * 4];				LPBYTE lpTmp;				for (;;)				{					if (!InternetReadFile(hRequest, szBuf, (DWORD)sizeof(szBuf), &dwRead) || !dwRead) break;					lpTmp = (LPBYTE)GlobalReAlloc(lpszReturn, (SIZE_T)(*lpSize + dwRead), GMEM_MOVEABLE);					if (lpTmp == NULL) break;					lpszReturn = lpTmp;					CopyMemory(lpszReturn + *lpSize, szBuf, dwRead);					*lpSize += dwRead;				}				InternetCloseHandle(hRequest);			}			InternetCloseHandle(hConnection);		}		InternetCloseHandle(hSession);	}	return lpszReturn;}
开发者ID:kenjinote,项目名称:GetGitHubRepositoryList,代码行数:44,


示例19: switch

	Request::Request(const oConnection& connection, const StringRef& uri, Type type, const char* version, const char* referer, const char** acceptTypes, int flags) {		this->_uri = RegEx::doReplace("#^[a-z]+://[^/]+#i" , "", uri.c_str() );		this->_type = type;		this->_connection = connection;		const char* verb;		switch (_type) {			case typePost:				verb = "POST";				break;			case typeHead:				verb = "HEAD";				break;			default:				verb = "GET";		}		_hRequest = HttpOpenRequest(connection->getHandle(), verb,			_uri.empty() ? "/" : _uri.c_str(), version, referer, acceptTypes, flags, 1);		if (!_hRequest) {			throw ExceptionBadRequest();		}	}
开发者ID:Konnekt,项目名称:staminalib,代码行数:21,


示例20: HttpOpenRequest

bool CConnection::SendRequest(XMLMemoryWriter& xml_memory_writer,Buffer &buffer,IEventListener* event_listener){	CHAR   buffer_tmp[1024];	DWORD  bytes_read;	const WCHAR* lplpszAcceptTypes[] = { L"*/*", NULL };	m_request = HttpOpenRequest(m_connection, L"POST", L"/xml-rpc", NULL, 0, lplpszAcceptTypes, 0, 0);	if (m_request)	{		if (HttpSendRequest(m_request, 0, 0, xml_memory_writer.xml_data, xml_memory_writer.xml_data_size))		{			DWORD content_len;			DWORD content_len_size = sizeof(content_len);			if (HttpQueryInfo(m_request, HTTP_QUERY_CONTENT_LENGTH | HTTP_QUERY_FLAG_NUMBER, &content_len, &content_len_size, 0))			{				if (buffer.Allocate(content_len))				{					while (InternetReadFile(m_request, buffer_tmp, sizeof(buffer_tmp), &bytes_read) && bytes_read)					{						memcpy(buffer.buffer_in + buffer.buffer_in_total, buffer_tmp, bytes_read);						buffer.buffer_in_total += bytes_read;					}					return true;				}				else					event_listener->OnError(L"failed to allocate memory");			}			else				event_listener->OnError(L"failed to query http info");		}		else			event_listener->OnError(L"failed to send http request");	    InternetCloseHandle(m_request);	}	else		event_listener->OnError(L"failed creating http request");	return false;}
开发者ID:iuliua,项目名称:OpenSub,代码行数:37,


示例21: _UpdWatcher_Check

CHECK_RESULT _UpdWatcher_Check (UPDWATCHER * p){  BOOL bSuccess ;  CHECK_RESULT nResult = CHECK_UNDEFINED ;  if( Config_GetInteger(CFGINT_CHECK_FOR_UPDATES) )    {      DWORD dwState = INTERNET_CONNECTION_OFFLINE ;            // check if a connection is available      bSuccess = InternetGetConnectedState (&dwState, 0) ;      // connection available ?      if( bSuccess ) 	{	  // open session	  HINTERNET hSession = InternetOpen (TEXT(APPLICATION_NAME), 0, NULL, NULL, 0) ;	  	  // session opened ?	  if( hSession )	    {	      // open connection	      HINTERNET hConnect = InternetConnect (hSession, szServerName, nServerPort,						    szUsername, szPassword, 						    INTERNET_SERVICE_HTTP, 0,0) ;	      	      // connexion opened ?	      if( hConnect )		{		  // open request		  HINTERNET hRequest = HttpOpenRequest (hConnect, TEXT("GET"), szObjectName,							HTTP_VERSION, NULL, NULL, 							INTERNET_FLAG_RELOAD,0) ;		  		  // request opened ?		  if( hRequest )		    {  		      // send request		      bSuccess = HttpSendRequest (hRequest, NULL, 0, 0, 0) ;		      		      // request sent ?		      if( bSuccess )			{			  char	szContent[256] ;			  DWORD dwContentMax = 256 ;			  DWORD dwBytesRead ;			  			  // read file			  bSuccess = InternetReadFile (hRequest, szContent,						       dwContentMax, 						       &dwBytesRead);			  			  // failed to read file ?			  if( bSuccess )			    {			      			      char * szVersion ;			      			      szContent[dwBytesRead] = 0 ;	      			      			      // look for version string			      szVersion = strstr (szContent, "<!-- Version: ") ;			      			      // failed ?			      if( szVersion )				{				  int nHigh, nMed, nLow ;				  int nNetVersion, nMyVersion ;				  szVersion += 14 ;				  // read net's version				  sscanf (szVersion, "%d.%d.%d", 					  &nHigh, &nMed, &nLow) ;				  nNetVersion = (nHigh*256 + nMed)*256 + nLow ;				  TRACE_INFO (TEXT("Net version = %d.%d.%d/n"), nHigh, nMed, nLow) ;				  // save net version				  wsprintf (p->szNewVersion, TEXT("%d.%d.%d"), nHigh, nMed, nLow) ;				  				  // read my version				  sscanf (APPLICATION_VERSION_STRING, "%d.%d.%d", 					  &nHigh, &nMed, &nLow) ;			  				  nMyVersion = (nHigh*256 + nMed)*256 + nLow ;				  TRACE_INFO  (TEXT("Local version = %d.%d.%d/n"), nHigh, nMed, nLow) ;				  							  // compare versions				  bSuccess = nNetVersion > nMyVersion ;	      		      				  				  nResult = bSuccess ? CHECK_DIFFERENT_VERSION : CHECK_SAME_VERSION ;				  if( bSuccess )				    {				      char *szStartPage, *szEndPage ;				      				      // look for page address				      szStartPage = strstr (szContent, "<!-- Page: ") ;				      				      // failed ?				      if( szStartPage )					{//.........这里部分代码省略.........
开发者ID:340211173,项目名称:hf-2011,代码行数:101,


示例22: wms_get_file_1

int wms_get_file_1(HINTERNET hConnect, LPCSTR pathname, LPCSTR strReferer, LPCSTR tx_saveto){HINTERNET hReq;DWORD  dwSize, dwCode;CHAR szData[HTTP_GET_SIZE+1];//CString strReferer = "http://maps.peterrobins.co.uk/f/m.html";//strReferer = "http://map.geoportail.lu";	if ( !(hReq = HttpOpenRequest (hConnect, "GET", pathname, HTTP_VERSION, strReferer, NULL, 0 ,0 ))) {		ErrorOut (GetLastError(), "HttpOpenRequest");		return FALSE;	}	if (!HttpSendRequest (hReq, NULL, 0, NULL, 0) ) {		ErrorOut (GetLastError(), "HttpSend");		return FALSE;	}	dwSize = sizeof (DWORD) ;	if ( !HttpQueryInfo (hReq, HTTP_QUERY_STATUS_CODE | HTTP_QUERY_FLAG_NUMBER, &dwCode, &dwSize, NULL)) {		ErrorOut (GetLastError(), "HttpQueryInfo");		return FALSE;	}	if ( dwCode == HTTP_STATUS_DENIED || dwCode == HTTP_STATUS_PROXY_AUTH_REQ) {		// This is a secure page.		fprintf(stderr, "This page is password protected./n");		return FALSE;	}	if ( dwCode == 404) {		fprintf(stderr, "Page not found./n");		return FALSE;	}	FILE * fp = fopen(tx_saveto, "wb+");	if (fp == NULL) {		printf("Couldn't create %s/n", tx_saveto);		return FALSE;	}	long file_len=0;	while (!abortProgram) {		if (!InternetReadFile (hReq, (LPVOID)szData, HTTP_GET_SIZE, &dwSize) ) {			ErrorOut (GetLastError (), "InternetReadFile");			file_len = -1;			break;		}		if (dwSize == 0)			break;		if (fwrite(szData, sizeof(char), dwSize, fp) != dwSize) {			printf("Error writing %d bytes to %s/n", dwSize, tx_saveto);			file_len = -1;			break;		}		file_len += dwSize;//		printf("%d /r", file_len);	}	fclose(fp);	if (!InternetCloseHandle (hReq) ) {		ErrorOut (GetLastError (), "CloseHandle on hReq");		file_len = -1;	}	if (file_len <= 0)		return FALSE;	// Validate PNG	LPBYTE buffer = (LPBYTE)malloc(file_len+1);	if (buffer == 0) {		fprintf(stderr, "Couldn't allocate %d bytes to verify %s/n", file_len, tx_saveto);		return FALSE;	}	memset(buffer, 0, file_len+1);	fp = fopen(tx_saveto, "rb");	if (fp == NULL) {		fprintf(stderr, "Failed to reopen %s/n", tx_saveto);		free(buffer);		return FALSE;	}	if (fread(buffer, 1, file_len, fp) != file_len) {		fprintf(stderr, "Error reading %s/n", tx_saveto);		free(buffer);		return FALSE;	}	fclose(fp);	unsigned char pnghdr[] = {0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a};	unsigned char jpghdr[] = {0xFF, 0xD8, 0xFF, 0xE0, 0x00, 0x10, 0x4A, 0x46, 0x49, 0x46};	unsigned char gifhdr[] = {0x47, 0x49, 0x46, 0x38, 0x39, 0x61};	if ((memcmp(buffer, pnghdr, sizeof(pnghdr)) == 0)	||  (memcmp(buffer, jpghdr, sizeof(jpghdr)) == 0)	||  (memcmp(buffer, gifhdr, sizeof(gifhdr)) == 0)) {		free(buffer);		return TRUE;	} else {		fprintf(stderr, "Error retrieving %s/n", tx_saveto);//.........这里部分代码省略.........
开发者ID:SimonL66,项目名称:OziGen,代码行数:101,


示例23: TransferStart

/* * TransferStart: Retrieve files; the information needed to set up the * transfer is in info. * * This function is run in its own thread. */void __cdecl TransferStart(void *download_info){    Bool done;    char filename[MAX_PATH + FILENAME_MAX];    char local_filename[MAX_PATH + 1];  // Local filename of current downloaded file    int i;    int outfile;                   // Handle to output file    DWORD size;                      // Size of block we're reading    int bytes_read;                // Total # of bytes we've read#if defined VANILLA_UPDATER    const char *mime_types[2] = { "application/x-zip-compressed" };#else    const char *mime_types[4] = { "application/octet-stream", "text/plain", "application/x-msdownload", NULL };    //const char *mime_types[2] = { "application/octet-stream", NULL };#endif    DWORD file_size;    DWORD file_size_buf_len;    DWORD index = 0;    DownloadInfo *info = (DownloadInfo *)download_info;    aborted = False;    hConnection = NULL;    hSession = NULL;    hFile = NULL;    hConnection = InternetOpen(szAppName, INTERNET_OPEN_TYPE_PRECONFIG,                               NULL, NULL, INTERNET_FLAG_RELOAD);    if (hConnection == NULL)    {        DownloadError(info->hPostWnd, GetString(hInst, IDS_CANTINIT));        return;    }    if (aborted)    {        TransferCloseHandles();        return;    }    hSession = InternetConnect(hConnection, info->machine, INTERNET_INVALID_PORT_NUMBER,                               NULL, NULL, INTERNET_SERVICE_HTTP, 0, 0);    if (hSession == NULL)    {        DownloadError(info->hPostWnd, GetString(hInst, IDS_NOCONNECTION), info->machine);        return;    }    for (i = info->current_file; i < info->num_files; i++)    {        if (aborted)        {            TransferCloseHandles();            return;        }        // Skip non-guest files if we're a guest        if (config.guest && !(info->files[i].flags & DF_GUEST))        {            PostMessage(info->hPostWnd, BK_FILEDONE, 0, i);            continue;        }        // If not supposed to transfer file, inform main thread        if (DownloadCommand(info->files[i].flags) != DF_RETRIEVE)        {            // Wait for main thread to finish processing previous file            WaitForSingleObject(hSemaphore, INFINITE);            if (aborted)            {                TransferCloseHandles();                return;            }            PostMessage(info->hPostWnd, BK_FILEDONE, 0, i);            continue;        }#if VANILLA_UPDATER        sprintf(filename, "%s%s", info->path, info->files[i].filename);#else        sprintf(filename, "%s//%s", info->path, info->files[i].filename);#endif        hFile = HttpOpenRequest(hSession, NULL, filename, NULL, NULL,                                mime_types, INTERNET_FLAG_NO_UI, 0);        if (hFile == NULL)        {            debug(("HTTPOpenRequest failed, error = %d, %s/n",                   GetLastError(), GetLastErrorStr()));            DownloadError(info->hPostWnd, GetString(hInst, IDS_CANTFINDFILE),                          filename, info->machine);            return;//.........这里部分代码省略.........
开发者ID:OpenMeridian105,项目名称:Meridian59,代码行数:101,


示例24: Close

BOOL vmsPostRequest::Send(LPCTSTR ptszServer, LPCTSTR ptszFilePath, LPCVOID pvData, DWORD dwDataSize, LPCTSTR ptszContentType, std::string *pstrResponse){	Close ();	DWORD dwAccessType = INTERNET_OPEN_TYPE_PRECONFIG;	if (m_pProxyInfo)		dwAccessType = m_pProxyInfo->tstrAddr.empty () ? INTERNET_OPEN_TYPE_DIRECT : INTERNET_OPEN_TYPE_PROXY;	m_hInet = InternetOpen (m_tstrUserAgent.c_str (), dwAccessType,		dwAccessType == INTERNET_OPEN_TYPE_PROXY ? m_pProxyInfo->tstrAddr.c_str () : NULL, NULL, 0);	if (m_hInet == NULL)		return FALSE;	PostInitWinInetHandle (m_hInet);	m_hConnect = InternetConnect (m_hInet, ptszServer, INTERNET_DEFAULT_HTTP_PORT, 		NULL, NULL, INTERNET_SERVICE_HTTP, 0, NULL);	if (m_hConnect == NULL)		return FALSE;#ifdef DEBUG_SHOW_SERVER_REQUESTS	TCHAR tszTmpPath [MAX_PATH];	GetTempPath (MAX_PATH, tszTmpPath);	TCHAR tszTmpFile [MAX_PATH];	_stprintf (tszTmpFile, _T ("%s//si_serv_req_%d.txt"), tszTmpPath, _c++);	HANDLE hLog = CreateFile (tszTmpFile, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, 0, NULL);	DWORD dwLogWritten;	#define LOG_REQ(s) WriteFile (hLog, s, strlen (s), &dwLogWritten, NULL)	#define LOG_REQ_OPEN	CloseHandle (hLog); ShellExecute (NULL, "open", tszTmpFile, NULL, NULL, SW_SHOW);	char szTmp [10000] = ""; DWORD dwTmp = 10000;	#define LOG_REQ_HTTP_HDRS *szTmp = 0; HttpQueryInfo (m_hRequest, HTTP_QUERY_RAW_HEADERS_CRLF | HTTP_QUERY_FLAG_REQUEST_HEADERS, szTmp, &dwTmp, 0); LOG_REQ (szTmp);	#define LOG_REQ_ALL LOG_REQ_HTTP_HDRS; LOG_REQ ((LPCSTR)pvData);	#define LOG_RESP_HTTP_HDRS *szTmp = 0; HttpQueryInfo (m_hRequest, HTTP_QUERY_RAW_HEADERS_CRLF, szTmp, &dwTmp, 0); LOG_REQ (szTmp);	DWORD dwErr;#else	#define LOG_REQ(s) 	#define LOG_REQ_OPEN	#define LOG_REQ_HTTP_HDRS	#define LOG_RESP_HTTP_HDRS	#define LOG_REQ_ALL#endif	m_hRequest = HttpOpenRequest (m_hConnect, _T ("POST"), ptszFilePath, NULL, NULL, NULL,		INTERNET_FLAG_NO_CACHE_WRITE | INTERNET_FLAG_KEEP_CONNECTION | INTERNET_FLAG_NO_UI | 		INTERNET_FLAG_PRAGMA_NOCACHE, 0);	if (m_hRequest == NULL)	{		DWORD dwErr = GetLastError ();		LOG_REQ ("SERVER FAILURE/r/n");		LOG_REQ_OPEN;		SetLastError (dwErr);		return FALSE;	}	ApplyProxyAuth (m_hRequest);	if (ptszContentType)	{		tstring tstr = _T ("Content-Type: ");		tstr += ptszContentType;		tstr += _T ("/r/n");		HttpAddRequestHeaders (m_hRequest, tstr.c_str (), tstr.length (), HTTP_ADDREQ_FLAG_ADD|HTTP_ADDREQ_FLAG_REPLACE);	}#ifdef vmsPostRequest_USE_NO_HTTPSENDREQUESTEX	if (FALSE == HttpSendRequest (m_hRequest, NULL, 0, (LPVOID)pvData, dwDataSize))		return FALSE;#else	INTERNET_BUFFERS buffs;	ZeroMemory (&buffs, sizeof (buffs));	buffs.dwStructSize = sizeof (buffs);	buffs.dwBufferTotal = dwDataSize;	if (FALSE == HttpSendRequestEx (m_hRequest, &buffs, NULL, 0, 0))	{		PUL (" >>> HttpSendRequestEx failed.");		LOG_REQ ("SERVER FAILURE/r/n");		LOG_REQ_OPEN;		return FALSE;	}	if (FALSE == MyInternetWriteFile (m_hRequest, pvData, dwDataSize))	{		PUL (" >>> MyInternetWriteFile failed.");		LOG_REQ ("SERVER FAILURE/r/n");		LOG_REQ_OPEN;		return FALSE;	}	if (FALSE == HttpEndRequest (m_hRequest, NULL, 0, 0))	{		PUL (" >>> HttpEndRequest failed.");		LOG_REQ_ALL;		LOG_REQ ("/r/n/r/n");		LOG_RESP_HTTP_HDRS;		LOG_REQ ("SERVER FAILURE/r/n");		LOG_REQ_OPEN;		return FALSE;	}#endif//.........这里部分代码省略.........
开发者ID:DragonZX,项目名称:fdm2,代码行数:101,


示例25: GetGetLastError

void IINetUtil::GetWebFile(const tchar* Parameters, const tchar* pszServer, const tchar* pszFileName, tint32* OutputLength, tchar** OutputBuffer){    *OutputBuffer = NULL;    *OutputLength = 0;    HINTERNET Initialize = NULL;    HINTERNET Connection = NULL;    HINTERNET File = NULL;    //tchar* szFullFileName = NULL;    try {        //combine path and filename        //szFullFileName = new tchar[strlen(INTERFACE_PATH)+strlen((const char *) FileName)+1];        //sprintf((char *) szFullFileName,"%s%s",INTERFACE_PATH,FileName);        /*initialize the wininet library*/        if (NULL == (Initialize = InternetOpen("Koblo INet Engine 1.0", INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0)))//INTERNET_FLAG_ASYNC)))        {            // Lasse, modified 2007-09-10            //throw IException::Create(IException::TypeNetwork,            //	IException::ReasonNetworkCannotOpen,            //	EXCEPTION_INFO);            tchar pszMsg[256];            GetGetLastError(pszMsg);            throw IException::Create(IException::TypeNetwork,                                     IException::ReasonNetworkCannotOpen,                                     EXCEPTION_INFO,                                     pszMsg);            // .. Lasse        }        //Set timeout        int timeout = CONNECT_TIMEOUT * 1000;        // Lasse, modified 2007-09-10 - check for return value        //InternetSetOption(Initialize, INTERNET_OPTION_CONNECT_TIMEOUT, &timeout, 4);        if (!InternetSetOption(Initialize, INTERNET_OPTION_CONNECT_TIMEOUT, &timeout, 4)) {            tchar pszMsg[256];            GetGetLastError(pszMsg);            throw IException::Create(IException::TypeNetwork,                                     IException::ReasonNetworkGeneric,                                     EXCEPTION_INFO,                                     pszMsg);        }        // Lasse, added 2007-09-10 - context identifier for application        DWORD dwContext = 0;        DWORD_PTR pdwContext = (DWORD_PTR)&dwContext;        // .. Lasse        /*connect to the server*/        // Lasse, modified 2007-09-10 - avoid risky NULL pointer read; use context identifier correctly        //if (NULL == (Connection = InternetConnect(Initialize,WEB_SERVER,INTERNET_DEFAULT_HTTP_PORT,        //	NULL,NULL,INTERNET_SERVICE_HTTP,0,0)))        if (NULL == (Connection = InternetConnect(Initialize, pszServer, INTERNET_DEFAULT_HTTP_PORT,                                  NULL, NULL, INTERNET_SERVICE_HTTP, 0, pdwContext)))            // .. Lasse        {            // Lasse, modified 2007-09-10            //throw IException::Create(IException::TypeNetwork,            //	IException::ReasonCouldntConnectToServer,            //	EXCEPTION_INFO);            tchar pszMsg[256];            GetGetLastError(pszMsg);            throw IException::Create(IException::TypeNetwork,                                     IException::ReasonCouldntConnectToServer,                                     EXCEPTION_INFO,                                     pszMsg);            // .. Lasse        }        /*open up an HTTP request*/        // Lasse, modified 2007-09-10 - 1: avoid risky NULL pointer read; use context identifier correctly, 2: avoid using cache        //if (NULL == (File = HttpOpenRequest(Connection,POST_GET("POST","GET"),(const char*) szFullFileName,NULL,NULL,NULL,0,0)))        //if (NULL == (File = HttpOpenRequest(Connection, POST_GET("POST","GET"), (const char*)szFullFileName, NULL, NULL, NULL, INTERNET_FLAG_NO_CACHE_WRITE|INTERNET_FLAG_RELOAD, pdwContext)))        if (NULL == (File = HttpOpenRequest(Connection, POST_GET("POST","GET"), (const char*)pszFileName, NULL, NULL, NULL, INTERNET_FLAG_NO_CACHE_WRITE|INTERNET_FLAG_RELOAD, pdwContext)))            // .. Lasse        {            // Lasse, modified 2007-09-10            //throw IException::Create(IException::TypeNetwork,            //	IException::ReasonCouldntConnectToAppl,            //	EXCEPTION_INFO);            tchar pszMsg[256];            GetGetLastError(pszMsg);            throw IException::Create(IException::TypeNetwork,                                     IException::ReasonCouldntConnectToAppl,                                     EXCEPTION_INFO,                                     pszMsg);            // .. Lasse        }        /*Read the file*/        if(HttpSendRequest(                    File,                    POST_GET(POST_CONTENT_TYPE,NULL),                    POST_GET(strlen(POST_CONTENT_TYPE),0),                    POST_GET((void*)Parameters,NULL),                    POST_GET(strlen((const char *) Parameters),0)                ))        {            *OutputBuffer = new tchar[MAX_PAGE_SIZE];            // Lasse, changed 2007-09-11 - fix for prematurely return before all data have been received            //InternetReadFile(File,*OutputBuffer,MAX_PAGE_SIZE, (unsigned long *) OutputLength);            DWORD dwLen = 0;            *OutputLength = 0;            tuint32 uiRemainingBuffer = MAX_PAGE_SIZE;            tchar* pszBuff = *OutputBuffer;//.........这里部分代码省略.........
开发者ID:eriser,项目名称:koblo_software-1,代码行数:101,


示例26: ASSERT

void CHttpDownloadDlg::DownloadThread(){	ENCODING_INIT;	//Create the Internet session handle	ASSERT(m_hInternetSession == NULL);	m_hInternetSession = ::InternetOpen(AfxGetAppName(), INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);	if (m_hInternetSession == NULL)	{		TRACE(_T("Failed in call to InternetOpen, Error:%d/n"), ::GetLastError());		HandleThreadErrorWithLastError(GetResString(IDS_HTTPDOWNLOAD_GENERIC_ERROR));		return;	}	//Should we exit the thread	if (m_bAbort)	{		PostMessage(WM_HTTPDOWNLOAD_THREAD_FINISHED);		return;	}  	//Setup the status callback function	if (::InternetSetStatusCallback(m_hInternetSession, _OnStatusCallBack) == INTERNET_INVALID_STATUS_CALLBACK)	{		TRACE(_T("Failed in call to InternetSetStatusCallback, Error:%d/n"), ::GetLastError());		HandleThreadErrorWithLastError(GetResString(IDS_HTTPDOWNLOAD_GENERIC_ERROR));		return;	}	//Should we exit the thread	if (m_bAbort)	{		PostMessage(WM_HTTPDOWNLOAD_THREAD_FINISHED);		return;	}	//Make the connection to the HTTP server	ASSERT(m_hHttpConnection == NULL);	if (m_sUserName.GetLength())		// Elandal: Assumes sizeof(void*) == sizeof(unsigned long)		m_hHttpConnection = ::InternetConnect(m_hInternetSession, m_sServer, m_nPort, m_sUserName,                                           m_sPassword, m_dwServiceType, 0, (DWORD) this);	else		// Elandal: Assumes sizeof(void*) == sizeof(unsigned long)		m_hHttpConnection = ::InternetConnect(m_hInternetSession, m_sServer, m_nPort, NULL,                                           NULL, m_dwServiceType, 0, (DWORD) this);	if (m_hHttpConnection == NULL)	{		TRACE(_T("Failed in call to InternetConnect, Error:%d/n"), ::GetLastError());		HandleThreadErrorWithLastError(GetResString(IDS_HTTPDOWNLOAD_FAIL_CONNECT_SERVER));		return;	}	//Should we exit the thread	if (m_bAbort)	{		PostMessage(WM_HTTPDOWNLOAD_THREAD_FINISHED);		return;	}	//Start the animation to signify that the download is taking place	PlayAnimation();	//Issue the request to read the file	LPCTSTR ppszAcceptTypes[2];	ppszAcceptTypes[0] = _T("*/*");  //We support accepting any mime file type since this is a simple download of a file	ppszAcceptTypes[1] = NULL;	ASSERT(m_hHttpFile == NULL);	// Elandal: Assumes sizeof(void*) == sizeof(unsigned long)	m_hHttpFile = HttpOpenRequest(m_hHttpConnection, NULL, m_sObject, NULL, NULL, ppszAcceptTypes, INTERNET_FLAG_RELOAD | 								  INTERNET_FLAG_DONT_CACHE | INTERNET_FLAG_KEEP_CONNECTION, (DWORD)this);	if (m_hHttpFile == NULL)	{		TRACE(_T("Failed in call to HttpOpenRequest, Error:%d/n"), ::GetLastError());		HandleThreadErrorWithLastError(GetResString(IDS_HTTPDOWNLOAD_FAIL_CONNECT_SERVER));		return;	}	//Should we exit the thread	if (m_bAbort)	{		PostMessage(WM_HTTPDOWNLOAD_THREAD_FINISHED);		return;	}	//fill in what encoding we support	HttpAddRequestHeaders(m_hHttpFile, ACCEPT_ENCODING_HEADER, (DWORD)-1L, HTTP_ADDREQ_FLAG_ADD);//label used to jump to if we need to resend the requestresend:	//Issue the request	BOOL bSend = ::HttpSendRequest(m_hHttpFile, NULL, 0, NULL, 0);	if (!bSend)	{		TRACE(_T("Failed in call to HttpSendRequest, Error:%d/n"), ::GetLastError());		HandleThreadErrorWithLastError(GetResString(IDS_HTTPDOWNLOAD_FAIL_CONNECT_SERVER));		return;	}	//Check the HTTP status code//.........这里部分代码省略.........
开发者ID:litaobj,项目名称:easymule,代码行数:101,


示例27: Open_imp

fsInternetResult fsHttpFile::OpenEx(LPCSTR pszFilePath, UINT64 uStartPos, UINT64 uUploadPartSize, UINT64 uUploadTotalSize){	if (uUploadTotalSize == _UI64_MAX)		return Open_imp (pszFilePath, uStartPos, 0);	if (uStartPos + uUploadPartSize > uUploadTotalSize)		return IR_INVALIDPARAM;	if (!m_pServer) 		return IR_NOTINITIALIZED;	HINTERNET hServer = m_pServer->GetHandle ();  	if (!hServer)		return IR_NOTINITIALIZED;	CloseHandle ();	if (lstrlen (pszFilePath) > 9000)		return IR_BADURL;	fsString strFilePath = pszFilePath;	fsString strFileName;	if (m_bUseMultipart)	{		LPSTR psz = strrchr (strFilePath, '/');		if (psz)		{			strFileName = psz + 1;			psz [1] = 0;		}		else			strFileName = pszFilePath;	}	LPTSTR ppszAcceptedTypes [2] = { "*/*", NULL }; 	m_hFile = HttpOpenRequest (hServer, "POST", strFilePath, m_pszHttpVersion,		NULL, (LPCSTR*)ppszAcceptedTypes, INTERNET_FLAG_NO_CACHE_WRITE | INTERNET_FLAG_KEEP_CONNECTION, 0);	if (m_hFile == NULL)		return fsWinInetErrorToIR ();	fsInternetResult ir = SetupProxy ();	if (ir != IR_SUCCESS)	{		CloseHandle ();		return ir;	}		CHAR szHdr [10000] = "";		if (m_bUseMultipart)		lstrcpy (szHdr, "Content-Type: multipart/form-data; boundary=---------------------------284583012225247");	else	{		lstrcpy (szHdr, "Content-Type: application/x-www-form-urlencoded");		if (m_strCharset.IsEmpty () == FALSE)		{			lstrcat (szHdr, "; charset=");			lstrcat (szHdr, m_strCharset);		}	}	if (uStartPos || uUploadPartSize != uUploadTotalSize)	{		if (*szHdr)			lstrcat (szHdr, "/r/n");		sprintf (szHdr + lstrlen (szHdr), "Range: bytes=%I64u-%I64u/%I64u", uStartPos, 			uStartPos + uUploadPartSize - 1, uUploadTotalSize); 	}	if (m_pszCookies)	{		if (*szHdr)			lstrcat (szHdr, "/r/n");		sprintf (szHdr + lstrlen (szHdr), "Cookie: %s", m_pszCookies); 	}	if (m_pszAdditionalHeaders)	{		if (*szHdr)			lstrcat (szHdr, "/r/n");		lstrcat (szHdr, m_pszAdditionalHeaders);	}		IgnoreSecurityProblems ();	int nSizeAdd = 0;	fsString strMultipartHdr;	if (m_bUseMultipart)	{		m_strLabel = "-----------------------------284583012225247";		strMultipartHdr = m_strLabel; strMultipartHdr += "/r/n";		strMultipartHdr += "Content-Disposition: form-data; name=/"uploadFormFile/"; filename=/"";		strMultipartHdr += strFileName; strMultipartHdr += "/"/r/n";//.........这里部分代码省略.........
开发者ID:HackLinux,项目名称:Free-Download-Manager-vs2010,代码行数:101,


示例28: CloseHandle

fsInternetResult fsHttpFile::Open_imp(LPCSTR pszFilePath, UINT64 uStartPos, int cTryings){	if (!m_pServer) 		return IR_NOTINITIALIZED;	HINTERNET hServer = m_pServer->GetHandle ();  	if (!hServer)			return IR_NOTINITIALIZED;	CloseHandle ();	if (lstrlen (pszFilePath) > 9000)		return IR_BADURL;	if (cTryings > 1)		return IR_WININETUNKERROR;	DWORD dwFlags = m_dwFlags;	if (m_pszCookies)		dwFlags |= INTERNET_FLAG_NO_COOKIES;	if (m_bEnableAutoRedirect == FALSE)		dwFlags |= INTERNET_FLAG_NO_AUTO_REDIRECT;	LPTSTR ppszAcceptedTypes [2] = { "*/*", NULL }; 					LPCSTR pszVerb = "GET";	if (m_pszPostData)		pszVerb = "POST";	else if (m_bHeadersOnly)		pszVerb = "HEAD";		m_hFile = HttpOpenRequest (hServer, pszVerb, pszFilePath, m_pszHttpVersion,		m_pszReferer, (LPCSTR*) ppszAcceptedTypes, 		dwFlags | INTERNET_FLAG_RELOAD | INTERNET_FLAG_PRAGMA_NOCACHE | 		INTERNET_FLAG_NO_CACHE_WRITE, NULL);	if (m_hFile == NULL)		return fsWinInetErrorToIR ();	fsInternetResult ir = SetupProxy ();	if (ir != IR_SUCCESS)	{		CloseHandle ();		return ir;	}		CHAR szHdr [20000] = "";	if (uStartPos)		sprintf (szHdr, "Range: bytes=%I64u-/r/n", uStartPos); 	if (m_pszCookies)		sprintf (szHdr + lstrlen (szHdr), "Cookie: %s/r/n", m_pszCookies); 	if (m_pszPostData)		strcat (szHdr, "Content-Type: application/x-www-form-urlencoded/r/n");	if (m_pszAdditionalHeaders)		strcat (szHdr, m_pszAdditionalHeaders);	if (cTryings == 0)	{				char szReq [90000];		sprintf (szReq, "%s %s %s/r/nReferer: %s", pszVerb, 			pszFilePath, m_pszHttpVersion, 			m_pszReferer ? m_pszReferer : "-");		if (*szHdr)		{			strcat (szReq, "/r/n");			strcat (szReq, szHdr);			szReq [strlen (szReq) - 2] = 0;			}		if ((dwFlags & INTERNET_FLAG_NO_COOKIES) == 0)		{			char szUrl [10000]; DWORD dw = sizeof (szUrl);			fsURL url;			url.Create (m_dwFlags & INTERNET_FLAG_SECURE ? INTERNET_SCHEME_HTTPS : INTERNET_SCHEME_HTTP,				m_pServer->GetServerName (), m_pServer->GetServerPort (), 				NULL, NULL, pszFilePath, szUrl, &dw);			char szCookie [10000]; dw = sizeof (szCookie);			*szCookie = 0;						InternetGetCookie (szUrl, NULL, szCookie, &dw);			if (*szCookie)			{				strcat (szReq, "/r/n");				strcat (szReq, "Cookie: ");//.........这里部分代码省略.........
开发者ID:HackLinux,项目名称:Free-Download-Manager-vs2010,代码行数:101,



注:本文中的HttpOpenRequest函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ HttpQueryInfo函数代码示例
C++ HtmlHelp函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。