Udostępnij za pośrednictwem


Obsługa błędów w usłudze WinHTTP

Nie wszystkie funkcje interfejsu API WinHTTP zgłaszają błędy w ten sam sposób.

Niektóre funkcje, takie jak WinHttpSetTimeouts, zwracają BOOL, która wskazuje błąd, gdy false. Jeśli zostanie zwrócona false, osoby wywołujące zainteresowane błędem powinny wywołać GetLastError. Jeśli GetLastError jest wywoływana po zakończeniu działania funkcji (zwracana jest wartość FALSE FALSE), zwracana wartość jest nieprzewidywalna i może ulec zmianie między wersjami systemu Windows, dodatkiem Service Pack, a nawet między wywołaniami tej samej funkcji.

Niektóre funkcje, takie jak WinHttpConnect, zwracają pseudo uchwyt. Te funkcje są dokładnie takie same, z wyjątkiem awarii, zwracając null. Jeśli jest zwracana null, osoby wywołujące zainteresowane błędem powinny wywołać getLastError. Jeśli GetLastError jest wywoływana, gdy funkcja zakończyła się powodzeniem (zwróciła wszystkie elementy, ale null), zwracana wartość jest nieprzewidywalna i może ulec zmianie między wersjami systemu Windows, dodatkiem Service Pack, a nawet między wywołaniami tej samej funkcji.

Niektóre funkcje, takie jak WinHttpGetProxyResult, zwracają kod błędu DWORD i nie ma potrzeby wywoływania żadnych innych funkcji, aby uzyskać więcej informacji o błędzie. W przypadku tych funkcji nie należy wywoływać GetLastError. Jeśli jest wywoływana GetLastError, niezależnie od powodzenia lub niepowodzenia funkcji, zwracana wartość jest nieprzewidywalna i może ulec zmianie między wersjami systemu Windows, dodatkiem Service Pack, a nawet między wywołaniami tej samej funkcji.