MCPcopy Create free account
hub / github.com/deathkiller/jazz2-native / WinHTTPQueryAllHeaderStrings

Function WinHTTPQueryAllHeaderStrings

Sources/Shared/IO/WebRequest.cpp:1773–1798  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1771 };
1772
1773 Array<String> WinHTTPQueryAllHeaderStrings(HINTERNET hRequest, DWORD dwInfoLevel, LPCWSTR pwszName = WINHTTP_HEADER_NAME_BY_INDEX)
1774 {
1775 Array<String> result;
1776 DWORD nextIndex = 0;
1777 do {
1778 DWORD bufferLen = 0;
1779 DWORD currentIndex = nextIndex;
1780 WinHTTP::WinHttpQueryHeaders(hRequest, dwInfoLevel, pwszName, nullptr, &bufferLen, &nextIndex);
1781 if (::GetLastError() == ERROR_INSUFFICIENT_BUFFER) {
1782 if (bufferLen == 0 || (bufferLen % sizeof(wchar_t)) != 0) {
1783 return {};
1784 }
1785
1786 SmallVector<wchar_t, 1000> resBuf(bufferLen / sizeof(wchar_t));
1787 if (WinHTTP::WinHttpQueryHeaders(hRequest, dwInfoLevel, pwszName, resBuf.data(), &bufferLen, &nextIndex)) {
1788 arrayAppend(result, Utf8::FromUtf16(resBuf.data(), bufferLen));
1789 }
1790 }
1791
1792 if (nextIndex <= currentIndex) {
1793 break;
1794 }
1795 } while (::GetLastError() != ERROR_WINHTTP_HEADER_NOT_FOUND);
1796
1797 return result;
1798 }
1799
1800 String WinHTTPQueryHeaderString(HINTERNET hRequest, DWORD dwInfoLevel, LPCWSTR pwszName = WINHTTP_HEADER_NAME_BY_INDEX)
1801 {

Callers 2

WinHTTPQueryHeaderStringFunction · 0.85
GetAllHeaderValuesMethod · 0.85

Calls 3

arrayAppendFunction · 0.85
FromUtf16Function · 0.50
dataMethod · 0.45

Tested by

no test coverage detected