Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Delphi, .NET, Asm (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   Проблемы с WinInet. (https://forum.antichat.xyz/showthread.php?t=148287)

Shaitan-Devil 14.10.2009 18:58

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

#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;
}


slesh 14.10.2009 23:08

Читай MSDN и там хорошо описано какие параметры передаются функциям

Вот тока основные баги, но это тебе не поможет потому что много глюков связанных с HTTP проколом. Вообще не поленись и открой 5005 статей по делфи. там всё есть + 10 раз уже тут обсуждалось это
Код:

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

.............
"/cgi-bin/auth",

..................


Shaitan-Devil 15.10.2009 05:11

Я не пишу на дельфи=\. И если 10 раз обсуждалось, где можно почитать. Гугл ничего не нашел.

slesh 15.10.2009 10:52

Delphi и С никакой разницы, потому что это WinAPI

dnd 16.10.2009 23:01

Код:

#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,
                "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,
                "Content-Type: application/x-www-form-urlencoded",
                -1L,
                "page=http%3A%2F%2Fmy.mail.ru%2F&Login=test&Domain=mail.ru&Password=1234",
                strlen("page=http%3A%2F%2Fmy.mail.ru%2F&Login=test&Domain=mail.ru&Password=1234\r\n")
                );
        char  szData[1024];
                        DWORD dwBytesRead;

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

п.с. на рсдне неплохая статья была..

Shaitan-Devil 06.11.2009 18:37

Да я разобрался уже. С кодом проблем не было. Были проблемы с форматом передачи данных).


Время: 17:30