Модераторы: feodorv
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблемы с WinInet. 
:(
    Опции темы
ShaitanDevil
Дата 15.10.2009, 17:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 23.9.2008

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



Компилируется без проблем. В отладчике тоже проблем нет. Но не работает. 
Код

#include <iostream>
#include <windows.h>
#include <wininet.h>
#pragma comment(lib,"wininet")
using namespace std;
int main()
{
    HINTERNET hInternet =::InternetOpen(
        "Mozilla/4.0 (compatible; MSIE 6.0b; Windows NT 5.0; .NET CLR 1.0.2914)", 
        INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);


    HINTERNET hConnect=::InternetConnect(
        hInternet,
        "http://my.mail.ru/",
        INTERNET_DEFAULT_HTTP_PORT,
        NULL, NULL,
        INTERNET_SERVICE_HTTP, NULL, NULL);


    HINTERNET hOpen=::HttpOpenRequest(
        hConnect,
        "POST", 
        "cgi-bin/auth",
        NULL,
        NULL,
        (LPCSTR*)"image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/msword, application/vnd.ms-excel, application/vnd.ms-powerpoint, */*",
        INTERNET_FLAG_KEEP_CONNECTION,
        NULL);



    BOOL Send=::HttpSendRequest(
        hOpen,
        NULL,
        0,
        "page=http%3A%2F%2Fmy.mail.ru%2F&Login=test&Domain=mail.ru&Password=1234",
        NULL
        );
     char  szData[1024];
                        DWORD dwBytesRead;

    BOOL IRead=::InternetReadFile(
        hOpen,
        szData,sizeof(szData)-1,
        &dwBytesRead);
cout<<szData;
   
                ::InternetCloseHandle(hOpen);
            
 
            ::InternetCloseHandle(hConnect);
        
        ::InternetCloseHandle(hInternet);
    system("PAUSE");
    return 0;
}

PM MAIL   Вверх
Alca
Дата 16.10.2009, 12:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3993
Регистрация: 14.6.2006

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



Снифер юзал?


--------------------
PM WWW ICQ Skype Jabber   Вверх
Comm
Дата 16.10.2009, 21:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата

Снифер юзал? 

Я посмотрел, при запуске программы никаких пакетов не отсылает.

user posted image

А при выводе буфера вообще ерунда какая то вылезает,видимо один из параметров задан неверно..



--------------------
=)))))
user posted image
PM MAIL ICQ   Вверх
Alca
Дата 16.10.2009, 21:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3993
Регистрация: 14.6.2006

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



Цитата

Я посмотрел, при запуске программы никаких пакетов не отсылает.

Имитируй такой запрос в браузере и посмотри снифером что там отсылается.

Это сообщение отредактировал(а) Alca - 16.10.2009, 22:05


--------------------
PM WWW ICQ Skype Jabber   Вверх
Alca
Дата 16.10.2009, 22:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3993
Регистрация: 14.6.2006

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



Код

#include <windows.h>
#include <iostream>
#include <stdio.h>
#include <string>
#include <vector>
#include <assert.h>

#include <iostream>
#include <windows.h>
#include <wininet.h>
#pragma comment(lib,"wininet")
using namespace std;
//---------------------------------------------------------------------------
int main(int argc, char* argv[]) {
    DWORD dwLastError = 0;

    HINTERNET hInternet =::InternetOpen(
                            "Mozilla/4.0 (compatible; MSIE 6.0b; Windows NT 5.0; .NET CLR 1.0.2914)", 
                            INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);
    std::cout << "InternetOpen " << ::GetLastError() << std::endl;
    assert(NULL != hInternet);

    HINTERNET hConnect=::InternetConnect(
                            hInternet,
                            "http://my.mail.ru/",
                            INTERNET_DEFAULT_HTTP_PORT,
                            NULL, NULL,
                            INTERNET_SERVICE_HTTP, NULL, NULL);
    std::cout << "InternetConnect " << ::GetLastError() << std::endl;
    assert(NULL != hConnect);


    HINTERNET hOpen=::HttpOpenRequest(
                        hConnect,
                        "POST", 
                        "cgi-bin/auth",
                        NULL,
                        NULL,
                        (LPCSTR *)"image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/msword, application/vnd.ms-excel, application/vnd.ms-powerpoint, */*",
                        INTERNET_FLAG_KEEP_CONNECTION,
                        NULL);
    std::cout << "HttpOpenRequest " << ::GetLastError() << std::endl;
    /*122 - Область данных, переданная по системному вызову, слишком мала. */
    assert(NULL != hOpen);


    BOOL Send = ::HttpSendRequest(
                        hOpen,
                        NULL,
                        0,
                        "page=http%3A%2F%2Fmy.mail.ru%2F&Login=test&Domain=mail.ru&Password=1234",
                        NULL
                        );
    std::cout << "HttpSendRequest " << ::GetLastError() << std::endl;
    assert(FALSE != Send);


    TCHAR szData[10024] = {0};
    DWORD dwBytesRead  = 0;

    BOOL IRead = ::InternetReadFile(
                        hOpen,
                        szData,sizeof(szData)-1,
                        &dwBytesRead);
    std::cout << "InternetReadFile " << ::GetLastError() << std::endl;
    std::cout << szData << std::endl;

    ::InternetCloseHandle(hOpen);
    ::InternetCloseHandle(hConnect);
    ::InternetCloseHandle(hInternet);



    system("pause");
    return 0;
}
//---------------------------------------------------------------------------



Это сообщение отредактировал(а) Alca - 16.10.2009, 22:19


--------------------
PM WWW ICQ Skype Jabber   Вверх
Alca
Дата 16.10.2009, 22:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3993
Регистрация: 14.6.2006

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



Как альтернатива можно заюзать сокеты. Отправить то что соснифал.

Добавлено через 8 минут и 9 секунд
Цитата

А при выводе буфера вообще ерунда какая то вылезает

Код

//Функция преобразует строку в набор символов OEM.
#include <windows.h>
#include <stdio.h>
#include <conio.h>

int main() {
    char src[64];
    char dest[64];
    int x =12;
    sprintf(src,"Тест");
    CharToOem(src,dest);
    printf(dest);
    getch();
}


Добавлено через 10 минут и 17 секунд
или 
Код

setlocale(LC_ALL, "Russian");



--------------------
PM WWW ICQ Skype Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Сети | Следующая тема »


 




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


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

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