Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Wininet POST/GET

Ostatnio zmodyfikowano 2017-07-29 18:32
Autor Wiadomość
foreman
Temat założony przez niniejszego użytkownika
» 2017-07-29 17:32:13
Nie rozumiem za bardzo co napisałeś mój kod dalej wyglada w taki sposób
C/C++
#include "stdafx.h"
#include <windows.h>
#include <iostream>
#include <wininet.h>
#include <cstdlib>
#include <string>

#pragma comment(lib,"Wininet.lib")

CHAR buffer[ 2048 ];
LPCWSTR m_strContents;
DWORD dwRead;

std::string s = "siemka";
LPCWSTR UserAgent = L"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36";
LPCWSTR HOST = L"localhost";
static TCHAR hdrs[] = _T( "Content-Type: application/x-www-form-urlencoded" );
int main()
{
   
    HINTERNET hinternet = InternetOpen(
    UserAgent,
    INTERNET_OPEN_TYPE_PRECONFIG,
    NULL,
    NULL,
    0 );
   
    HINTERNET hsite = InternetConnect(
    hinternet,
    HOST,
    INTERNET_DEFAULT_HTTPS_PORT,
    NULL,
    NULL,
    INTERNET_SERVICE_HTTP,
    0,
    0 );
   
    if( hsite != NULL )
         std::cout << "success" << std::endl;
   
    HINTERNET hData = HttpOpenRequest(
    hsite,
    NULL, //GET
    L"/test.php",
    NULL,
    NULL,
    NULL,
    INTERNET_FLAG_KEEP_CONNECTION,
    0 );
   
    static TCHAR data[] =
    _T( "?p=test" );
    HttpSendRequest(
    hData,
    data, //lpszHeaders
    sizeof( data ), //dwHeadersLength
    NULL, //lpOptional -->use for POST
    0 );
   
   
    InternetReadFile( hData, buffer, 1255, & dwRead );
    std::cout << buffer;
    system( "pause" );
    return 0;
}
P-163699
pekfos
» 2017-07-29 17:53:30
Nie rozumiem za bardzo co napisałeś
Jeśli nie rozumiesz, co znaczy "kliknij w link", to podejrzewam że masz większe problemy niż wysłanie GETa.. Parametry GET powinny być w adresie, nie w nagłówku.
P-163700
foreman
Temat założony przez niniejszego użytkownika
» 2017-07-29 17:57:00
zmieniając to w taki sposób

HINTERNET hData = HttpOpenRequest(
hsite,
NULL,//GET
L"/test.php?p=test",
NULL,
NULL,
NULL,
INTERNET_FLAG_KEEP_CONNECTION,
0);

też sie nic nie zmienia, nie rozumiem co mam zmienic aby to zadziałało
P-163701
pekfos
» 2017-07-29 18:07:37
Wysyłasz zwykłe zapytanie HTTP, więc i port musi być dla zwykłego HTTP: INTERNET_DEFAULT_HTTP_PORT. Do tego podajesz błędną długość nagłówka, więc po prostu pozwól ją wydedukować i podaj -1L.
P-163703
foreman
Temat założony przez niniejszego użytkownika
» 2017-07-29 18:14:19
dalej nic
P-163704
pekfos
» 2017-07-29 18:21:48
Podaj aktualny kod.
P-163705
foreman
Temat założony przez niniejszego użytkownika
» 2017-07-29 18:25:35
#include "stdafx.h"
#include <windows.h>
#include <iostream>
#include <wininet.h>
#include <cstdlib>
#include <string>

#pragma comment(lib,"Wininet.lib")

CHAR buffer[2048];
LPCWSTR  m_strContents;
DWORD dwRead;

std::string s = "siemka";
LPCWSTR UserAgent = L"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36";
LPCWSTR HOST = L"localhost";
static TCHAR hdrs[] =_T("Content-Type: application/x-www-form-urlencoded");
int main()
{

HINTERNET hinternet = InternetOpen(
UserAgent,
INTERNET_OPEN_TYPE_PRECONFIG,
NULL,
NULL,
0);

HINTERNET hsite = InternetConnect(
hinternet,
HOST,
INTERNET_DEFAULT_HTTP_PORT,
NULL,
NULL,
INTERNET_SERVICE_HTTP,
0,
0);

if (hsite != NULL)
std::cout << "success" <<std::endl;

HINTERNET hData = HttpOpenRequest(
hsite,
NULL,//GET
L"/test.php?p=test",
NULL,
NULL,
NULL,
INTERNET_FLAG_KEEP_CONNECTION,
0);

static TCHAR data[] =
_T("?p=test");
HttpSendRequest(
hData,
data,//lpszHeaders
-1L,//dwHeadersLength
NULL,//lpOptional -->use for POST
0);


InternetReadFile(hData, buffer, 1255, &dwRead);
std::cout << buffer;
system("pause");
return 0;
}
P-163706
pekfos
» 2017-07-29 18:32:34
C/C++
data, //lpszHeaders
- 1L, //dwHeadersLength
Jako nagłówek podaj nagłówek, hdrs.
P-163707
1 « 2 »
Poprzednia strona Strona 2 z 2