?
Hallo Itheru,
insbesondere mit https muss man etwas nachhelfen,
mach das mal so:
GetHtm("mydomain.de","//test.php?name=Franz&Strasse=weg 3");
PseudoCode!:
CString &CHttps::GetHtm(const CString strServer,const CString strUrl)
{
static CString strAnswer;
HINTERNET hSession,hConnect,hRequest;
CComBSTR url(strUrl);
CComBSTR svr(strServer);
strAnswer.Empty();
hSession = WinHttpOpen( L"WinHTTP/1.0",WINHTTP_ACCESS_TYPE_DEFAULT_PROXY,WINHTTP_NO_PROXY_NAME,WINHTTP_NO_PROXY_BYPASS, 0 );
if(!hSession)
return strAnswer;
if(!(hConnect = WinHttpConnect( hSession,svr,INTERNET_DEFAULT_HTTPS_PORT,0)))
return strAnswer;
if(!(hRequest = WinHttpOpenRequest( hConnect, L"GET", url,NULL, WINHTTP_NO_REFERER,WINHTTP_DEFAULT_ACCEPT_TYPES,WINHTTP_FLAG_SECURE)))
return strAnswer;
DWORD options = SECURITY_FLAG_IGNORE_CERT_CN_INVALID| SECURITY_FLAG_IGNORE_CERT_DATE_INVALID|SECURITY_FLAG_IGNORE_UNKNOWN_CA;
if(!WinHttpSetOption( hRequest, WINHTTP_OPTION_SECURITY_FLAGS ,(LPVOID)&options, sizeof(DWORD) ))
return strAnswer;
if(!WinHttpSendRequest(hRequest,WINHTTP_NO_ADDITIONAL_HEADERS,0,WINHTTP_NO_REQUEST_DATA, 0, 0, 0 ))
return strAnswer;
if(!WinHttpReceiveResponse(hRequest,NULL))
return strAnswer;
DWORD dwSize(0),dwDownloaded(0);
LPSTR pszOutBuffer;
do
{
if(!WinHttpQueryDataAvailable( hRequest, &dwSize) || !dwSize)
break;
if(!(pszOutBuffer = new char[dwSize+1]))
break;
ZeroMemory(pszOutBuffer,dwSize+1);
if(!WinHttpReadData(hRequest,(LPVOID)pszOutBuffer,dwSize,&dwDownloaded))
break;
strAnswer += (char *)pszOutBuffer;
delete [] pszOutBuffer;
}while(dwSize > 0);
if(hRequest) WinHttpCloseHandle(hRequest);
if(hConnect) WinHttpCloseHandle(hConnect);
if(hSession) WinHttpCloseHandle(hSession);
strAnswer.Replace(" \r\n","");
return strAnswer;
}