Send a HTTP POST Request in Delphi using WinInet api

In my recent work i have to send a http get request to the itunes app store.In the past i send the request by idhttp compents,but i notice that when get something vi openssl i get the wrong data.there are some noise data,just as below:

  
  
  

but the correct data should be like this:

  
  
  

with no “st11p08it-finance004/” and “0.0.0.0.0.2.1.1.1.47.1.7.0.1.0.1.0.0.5.0.15.1.0.3.0.1.1.3.0.7.7.0.5.1.0.3.0.5.0.0.1.3.0.0.3.0” should be “2.0.0.0.0.2.1.1.1.47.1.7.0.1.0.1.0.0.5.0.15.1.0.3.0.1.1.3.0.7.7.0.5.1.0.3.0.5.0.0.1.3.0.0.3.0
via the wininet api i get the correct result but i don’t know why there are so many diffrents .if anyone know just leave a message here .thx.smile

Continue Reading

C/C++/Delphi 调用命令并且显示执行结果

C/C++ 代码:

void ExecutCmd()
{
	SECURITY_ATTRIBUTES sa;
	HANDLE hRead,hWrite;
	wchar_t * lpCommandLine =_T("ping.exe www.h4ck.org.cn ");
	sa.nLength = sizeof(SECURITY_ATTRIBUTES);
	sa.lpSecurityDescriptor = NULL;
	sa.bInheritHandle = TRUE;

	TCHAR temp[255] = {0};
	_tcscpy(temp,lpCommandLine);
	if (!CreatePipe(&hRead,&hWrite,&sa,0)) {
		MessageBox(_T("Error On CreatePipe()"));
		return;
	}

	STARTUPINFO si;
	PROCESS_INFORMATION pi;
	si.cb = sizeof(STARTUPINFO);
	GetStartupInfo(&si);
	si.hStdError = hWrite;
	si.hStdOutput = hWrite;
	si.wShowWindow = SW_HIDE;
	si.dwFlags = STARTF_USESHOWWINDOW | STARTF_USESTDHANDLES;
	if (!CreateProcess(NULL,temp
		,NULL,NULL,TRUE,NULL,NULL,NULL,&si,&pi)) {
			MessageBox(_T("Error on CreateProcess()"));
			return;
	}
	CloseHandle(hWrite);

	char buffer[4096] = {0};
	DWORD bytesRead;
	while (true) {

		if (ReadFile(hRead,buffer,0x3FFu,&bytesRead,NULL) == NULL)
			break;
		outputstr += buffer;//m_outputstr is CString
		OutputDebugString(outputstr);
		UpdateData(false);
		Sleep(200);
		
	}
}
Continue Reading