Модераторы: feodorv, GremlinProg, xvr, Fixin
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> problem using HttpOpenRequest(...),HttpSendRequest, Internet**** APIs 
:(
    Опции темы
BlackCode
  Дата 8.5.2005, 15:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 8.5.2005
Где: Armenia, Yerevan

Репутация: нет
Всего: нет



Hello people.

Those who ever worked with the Internet***** APIs, please help, I need some working examples.

This code is working fine, but

Код

#include <windows.h>
#include <wininet.h>

#include <iostream>

using std::cout;

void main()
{
    auto HINTERNET hOpen = InternetOpen(
      "MyAgent",
      INTERNET_OPEN_TYPE_DIRECT,
      NULL,
      NULL,
      0);
    cout<<"hOpen="<<(INT)hOpen<<"\nGetLastError()="<<GetLastError()<<"\n\n\n";

    auto HINTERNET hUrl = InternetOpenUrl(
      hOpen,
      "http://www.freenet.am",
      0,0,
      INTERNET_FLAG_RELOAD | INTERNET_FLAG_PRAGMA_NOCACHE | INTERNET_FLAG_NO_COOKIES,
      0);
    cout<<"hUrl="<<(INT)hUrl<<"\nGetLastError()="<<GetLastError()<<"\n\n\n";

    auto char  buffer[128];
    auto DWORD uLong;

    while(1){

  if(InternetReadFile(hUrl,buffer,128,&uLong) == FALSE){
    MessageBox(0,"ERROR InternetReadFile returns NULL","ERROR",0);
            break;
  }
    
  for(UINT i=0;i<128;i++){
            cout<<buffer[i];
  }

  if(uLong < 128){
            break;
  }

  InternetSetFilePointer(hUrl,128,0,FILE_CURRENT,0);
    }

    Sleep(10000);

    cout<<"\n\n\nGetLastError()="<<GetLastError()<<"\n";
    InternetCloseHandle(hUrl);
    InternetCloseHandle(hOpen);
    cout<<"\n\n\nGetLastError()="<<GetLastError()<<"\n";
}


but when I try to use the
InternetConnect(...),
HttpOpenRequest(...),
HttpSendRequest(...)

instead of InternetOpenUrl(...)
it fails when calling HttpSendRequest(...) smile
it sends packets to the server and then fails.
GetLastError() returns 12007 error code,
which is not documented in the Platform SDK 2003 error codes.

look down for the details

Код

#include <windows.h>
#include <wininet.h>

#include <iostream>

using std::cout;

void main()
{
    auto HINTERNET hOpen = InternetOpen(
      "MyAgent",
      INTERNET_OPEN_TYPE_DIRECT,
      NULL,
      NULL,
      0);
    cout<<"hOpen="<<(INT)hOpen<<"\nGetLastError()="<<GetLastError()<<"\n\n\n";

    auto HINTERNET hConnect = InternetConnect(
      hOpen,
      "http://www.freenet.am",
      80,
      NULL,
      NULL,
      INTERNET_SERVICE_HTTP,
      0,0);
    cout<<"hConnect="<<(INT)hConnect<<"\nGetLastError()="<<GetLastError()<<"\n\n\n";

    auto HINTERNET hRequest = HttpOpenRequest(
      hConnect,
      "GET",
      "index.html",
      0,
      "http://forum.vision.am",
      (LPCSTR *)"",
      INTERNET_FLAG_NO_AUTH | INTERNET_FLAG_RELOAD | INTERNET_FLAG_PRAGMA_NOCACHE | INTERNET_FLAG_NO_COOKIES | INTERNET_FLAG_NO_CACHE_WRITE,
      0);
    cout<<"hRequest="<<(INT)hRequest<<"\nGetLastError()="<<GetLastError()<<"\n\n\n";

    auto BOOL sendRes = HttpSendRequest(
      hRequest,
      0,0,
      0,0);
    cout<<"sendRes="<<(INT)sendRes<<"\nGetLastError()="<<GetLastError()<<"\n\n\n";
}



The console output
Код

hOpen=13369348
GetLastError()=0


hConnect=13369352
GetLastError()=0


hRequest=13369356
GetLastError()=0


sendRes=0
GetLastError()=12007


Press any key to continue


Regards, Aram

Это сообщение отредактировал(а) BlackCode - 8.5.2005, 15:40
PM MAIL ICQ   Вверх
SeregaLBN
Дата 12.5.2005, 17:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 178
Регистрация: 3.10.2003
Где: Киев

Репутация: нет
Всего: нет



Как это не определена ошибка. Ошибаешся...

файл WinInet.h

//
// Internet API error returns
//

#define INTERNET_ERROR_BASE 12000

#define ERROR_INTERNET_NAME_NOT_RESOLVED (INTERNET_ERROR_BASE + 7)

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Системное программирование и WinAPI"
Fixin
GremlinProg
xvr
feodorv
  • Большое количество информации и примеров с использованием функций WinAPI можно найти в MSDN
  • Описание сообщений, уведомлений и примеров с использованием компонент WinAPI (BUTTON, EDIT, STATIC, и т.п.), можно найти в MSDN Control Library
  • Непосредственно, перед созданием новой темы, проверьте заголовок и удостоверьтесь, что он отражает суть обсуждения.
  • После заполнения поля "Название темы", обратите внимание на наличие и содержание панели "А здесь смотрели?", возможно Ваш вопрос уже был решен.
  • Приводите часть кода, в которой предположительно находится проблема или ошибка.
  • Если указываете код, пользуйтесь тегами [code][/code], или их кнопочными аналогами.
  • Если вопрос решен, воспользуйтесь соответствующей ссылкой, расположенной напротив названия темы.
  • Один топик - один вопрос!
  • Перед тем как создать тему - прочтите это .

На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы .


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема »


 




[ Время генерации скрипта: 0.0706 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.