InternetOpenA – różnice i opis fukcji

0

Czym różni się InternetOpen od InternetOpenA w delphi?

HINTERNET InternetOpen(
  LPCTSTR lpszAgent,
  DWORD dwAccessType,
  LPCTSTR lpszProxyName,
  LPCTSTR lpszProxyBypass,
  DWORD dwFlags
);

Jaką wartość wpisać w lpszAgent w przykładzie mam 'Mozilla'. I tu pytanie czy muszę mieć zainstalowanego firefoxa i co w pisać dla google i czy to ma znaczenie?

Access type
INTERNET_OPEN_TYPE_DIRECT
INTERNET_OPEN_TYPE_PRECONFIG
INTERNET_OPEN_TYPE_PRECONFIG_WITH_NO_AUTOPROXY
INTERNET_OPEN_TYPE_PROXY
PRE_CONFIG_INTERNET_ACCESS

Co oznaczają typy dostępu i jaki wybrać optymalnie

Dziękuje

1
piter2004 napisał(a):

Czym różni się InternetOpen od InternetOpenA w delphi?

Sufiks A oznacza wersję dla Ansi, a W dla unicode. Funkcja nie posiadająca sufiksu to alias, (najczęściej) dla wersji obsługującej kodowanie Ansi. Niektóre funkcje nie posiadają wersji dla unikodu, ale to dodaję jako ciekawostkę.

Tak więc odpowiadając na pytanie – te które podałeś niczym się nie różnią.

0

A co z parametrem access type?

0

A nie wiem – dokumentacja nie przybliża znaczenia tych stałych.

W przykładowych kodach znajdowałem INTERNET_OPEN_TYPE_PRECONFIG – sprawdź, powinno działać.

1

Tu jest trochę napisane:
https://docs.microsoft.com/en-us/windows/desktop/api/wininet/nf-wininet-internetopena
Za lpszAgent można wpisać cokolwiek.
Ja używam INTERNET_OPEN_TYPE_DIRECT i działa, ale tylko dla http. Dla https, na razie nie udało mi się nawiązać połączenia (ale próbowałem dawno, w starym Borlandzie).
Gdyby udało Ci się połączyć po https - to daj znać jak to zrobiłeś.

1

Using the Google Safe Browsing API from Delphi – zobaczcie sobie na ten artykuł, jest przykład dla https.

0

Hm, chyba nie widzę. Żeby połączyć się i pobrać plik po kolei lecą takie wywołania:
InternetOpen
InternetConnect
HttpSendRequest
u mnie nie przechodzi przez trzecie wywołanie, jak dam https (jak daję http: jest ok).
Sprawdziłem po kolei wszystkie parametry, które oni mają i są takie same jak u mnie.
A na dole mają kilka przykładowych wywołań i w tych przykładowych wywołaniach wszystkie adresy mają http:, nie widzę przykładu z https:

Myślę, że problem z https leży gdzie indziej, ale jeszcze tematu nie zgłębiałem. No bo przecież kiedy przeglądarka łączy się z serwerem przez https, to czy dojedzie do połączenia, czy nie zależy od tego, czy przeglądarka ma odpowiedni certyfikat. Skąd WINAPI ma wiedzieć, coś o certyfikatach? Czy wykorzystuje bazę certyfikatów przypisanych do IE?
Tu znalazłem coś na ten temat:
https://www.codeguru.com/cpp/i-n/internet/generalinternet/article.php/c3367/Selecting-a-client-certificate.htm
ale jeszcze nie analizowałem i nie próbowałem, mam duży niedoczas :-) (chyba jak wszyscy :-).

0

Podstawowe pytanie – dlaczego Windows API, a nie np. INDY?

1

Wrzucam opis z helpa delphi może ktoś to przetłumaczy na zrozumiały dla nas język.

Opis:
INTERNET_OPEN_TYPE_DIRECT Resolves all host names locally.
INTERNET_OPEN_TYPE_PRECONFIG Retrieves the proxy or direct configuration from the registry.
INTERNET_OPEN_TYPE_PRECONFIG_WITH_NO_AUTOPROXY Retrieves the proxy or direct configuration from the registry and prevents the use of a startup Microsoft JScript or Internet Setup (INS) file.

INTERNET_OPEN_TYPE_PROXY=
Passes requests to the proxy unless a proxy bypass list is supplied and the name to be resolved bypasses the proxy. In this case, the function uses INTERNET_OPEN_TYPE_DIRECT.

1 użytkowników online, w tym zalogowanych: 0, gości: 1