Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.02.2017, 13:52   #1
LAlexOmsk
Новичок
Джуниор
 
Регистрация: 13.02.2017
Сообщений: 1
По умолчанию WinHttpReceiveResponse - Неверный дескриптор

Пишу такой код

Код:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  DWORD dwSize = 0;
  DWORD dwDownloaded = 0;
  LPSTR pszOutBuffer;
  BOOL  bResults = FALSE;
  HINTERNET  hSession = NULL,
                   hConnect = NULL,
		   hRequest = NULL;

  hSession = WinHttpOpen( L"WinHTTP Example/1.0",
                          WINHTTP_ACCESS_TYPE_DEFAULT_PROXY,
                          WINHTTP_NO_PROXY_NAME,
                          WINHTTP_NO_PROXY_BYPASS, 0 );

  if( hSession )
	hConnect = WinHttpConnect( hSession, L"mysite.ru",
			           INTERNET_DEFAULT_HTTP_PORT, 0 );

  if( hConnect )
	hRequest = WinHttpOpenRequest( hConnect, L"GET", L"test.php", NULL, 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 );
  else
   switch(GetLastError())
   {
	   case ERROR_WINHTTP_CANNOT_CONNECT: ShowMessage("1"); break;
	   case ERROR_WINHTTP_CLIENT_AUTH_CERT_NEEDED: ShowMessage("2"); break;
	   case ERROR_WINHTTP_CONNECTION_ERROR: ShowMessage("3"); break;
	   case ERROR_WINHTTP_INCORRECT_HANDLE_STATE: ShowMessage("4"); break;
	   case ERROR_WINHTTP_INCORRECT_HANDLE_TYPE: ShowMessage("5"); break;
	   case ERROR_WINHTTP_INTERNAL_ERROR: ShowMessage("6"); break;
	   case ERROR_WINHTTP_INVALID_URL: ShowMessage("7"); break;
	   case ERROR_WINHTTP_LOGIN_FAILURE: ShowMessage("8"); break;
	   case ERROR_WINHTTP_NAME_NOT_RESOLVED: ShowMessage("9"); break;
	   case ERROR_WINHTTP_OPERATION_CANCELLED: ShowMessage("10"); break;
	   case ERROR_WINHTTP_RESPONSE_DRAIN_OVERFLOW: ShowMessage("11"); break;
	   case ERROR_WINHTTP_SECURE_FAILURE: ShowMessage("12"); break;
	   case ERROR_WINHTTP_SHUTDOWN: ShowMessage("13"); break;
	   case ERROR_WINHTTP_TIMEOUT: ShowMessage("14"); break;
	   case ERROR_WINHTTP_UNRECOGNIZED_SCHEME: ShowMessage("15"); break;
	   case ERROR_NOT_ENOUGH_MEMORY: ShowMessage("16"); break;
	   case ERROR_INVALID_PARAMETER: ShowMessage("17"); break;
	   case ERROR_WINHTTP_RESEND_REQUEST: ShowMessage("18"); break;
	   default: ShowMessage("-"+IntToStr((int)GetLastError())); break;
   }

  if( bResults )
  {
	do
    {
      dwSize = 0;
	  WinHttpQueryDataAvailable( hRequest, &dwSize );

      pszOutBuffer = new char[dwSize+1];
      if( !pszOutBuffer )
        dwSize=0;
      else
      {
		ZeroMemory( pszOutBuffer, dwSize+1 );

		WinHttpReadData( hRequest, (LPVOID)pszOutBuffer,  dwSize, &dwDownloaded);

		if(dwSize)
 		  ShowMessage(AnsiString(pszOutBuffer));
		delete [] pszOutBuffer;
      }
    } while( dwSize > 0 );
  }

  if( hRequest ) WinHttpCloseHandle( hRequest );
  if( hConnect )  WinHttpCloseHandle( hConnect );
  if( hSession )  WinHttpCloseHandle( hSession );

}
На Win 7 это работает на ура, на ХР выдает неверный дескриптор (GetLastError=6 в списке сообщений об ошибках в default). Что самое интересное, эту же ошибку получаю на 8.1. Что это значит и как ее победить?
LAlexOmsk вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
"Ошибка: Неверный дескриптор (6)" FleXik Общие вопросы Delphi 1 12.11.2012 18:51
Потоки: неверный дескриптор(6) при создании потока [MoNAMur] Общие вопросы Delphi 4 08.11.2011 12:05
Ошибка при работе с canvas "Неверный дескриптор" Алекс Ялта Gamedev - cоздание игр: Unity, OpenGL, DirectX 17 13.06.2011 22:32
Функция open() возвращает неверный дескриптор devl Общие вопросы C/C++ 8 12.01.2010 20:36
Из за чего пишет неверный дескриптор AquaKlaster Общие вопросы Delphi 9 12.09.2009 16:23