Add response code output to HTTPClient
This commit is contained in:
parent
2fc7a3c46d
commit
d9eacef921
@ -20,7 +20,7 @@
|
|||||||
#include "Main.h"
|
#include "Main.h"
|
||||||
#include <winhttp.h>
|
#include <winhttp.h>
|
||||||
|
|
||||||
BOOL HTTPGetFile (CTSTR url, CTSTR outputPath, CTSTR extraHeaders)
|
BOOL HTTPGetFile (CTSTR url, CTSTR outputPath, CTSTR extraHeaders, int *responseCode)
|
||||||
{
|
{
|
||||||
HINTERNET hSession = NULL;
|
HINTERNET hSession = NULL;
|
||||||
HINTERNET hConnect = NULL;
|
HINTERNET hConnect = NULL;
|
||||||
@ -81,10 +81,9 @@ BOOL HTTPGetFile (CTSTR url, CTSTR outputPath, CTSTR extraHeaders)
|
|||||||
if (!WinHttpQueryHeaders (hRequest, WINHTTP_QUERY_STATUS_CODE, WINHTTP_HEADER_NAME_BY_INDEX, &statusCode, &statusCodeLen, WINHTTP_NO_HEADER_INDEX))
|
if (!WinHttpQueryHeaders (hRequest, WINHTTP_QUERY_STATUS_CODE, WINHTTP_HEADER_NAME_BY_INDEX, &statusCode, &statusCodeLen, WINHTTP_NO_HEADER_INDEX))
|
||||||
goto failure;
|
goto failure;
|
||||||
|
|
||||||
if (!scmp(statusCode, TEXT("200")))
|
*responseCode = wcstoul(statusCode, NULL, 10);
|
||||||
goto failure;
|
|
||||||
|
|
||||||
if (bResults)
|
if (bResults && *responseCode == 200)
|
||||||
{
|
{
|
||||||
BYTE buffer[16384];
|
BYTE buffer[16384];
|
||||||
DWORD dwSize, dwOutSize;
|
DWORD dwSize, dwOutSize;
|
||||||
@ -107,6 +106,9 @@ BOOL HTTPGetFile (CTSTR url, CTSTR outputPath, CTSTR extraHeaders)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
if (!dwOutSize)
|
||||||
|
break;
|
||||||
|
|
||||||
if (!updateFile.Write(buffer, dwOutSize))
|
if (!updateFile.Write(buffer, dwOutSize))
|
||||||
goto failure;
|
goto failure;
|
||||||
}
|
}
|
||||||
@ -119,11 +121,11 @@ BOOL HTTPGetFile (CTSTR url, CTSTR outputPath, CTSTR extraHeaders)
|
|||||||
|
|
||||||
failure:
|
failure:
|
||||||
if (hSession)
|
if (hSession)
|
||||||
CloseHandle(hSession);
|
WinHttpCloseHandle(hSession);
|
||||||
if (hConnect)
|
if (hConnect)
|
||||||
CloseHandle(hConnect);
|
WinHttpCloseHandle(hConnect);
|
||||||
if (hRequest)
|
if (hRequest)
|
||||||
CloseHandle(hRequest);
|
WinHttpCloseHandle(hRequest);
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
@ -19,5 +19,5 @@
|
|||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
BOOL HTTPGetFile (CTSTR url, CTSTR outputPath, CTSTR extraHeaders);
|
BOOL HTTPGetFile (CTSTR url, CTSTR outputPath, CTSTR extraHeaders, int *responseCode);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user