00001
00002
00003
00004
00005
00006 #if !defined(AFX_FSHTTPFILE_H__28FE56A5_B9BC_43B2_A475_16CC7616FC32__INCLUDED_)
00007 #define AFX_FSHTTPFILE_H__28FE56A5_B9BC_43B2_A475_16CC7616FC32__INCLUDED_
00008
00009 #if _MSC_VER > 1000
00010 #pragma once
00011 #endif
00012
00013 #include "fsInternetFile.h"
00014 #include "fsinet.h"
00015
00016 class fsHttpFile : public fsInternetFile
00017 {
00018 public:
00019 void set_Charset (LPCSTR psz);
00020 void set_EnableAutoRedirect (BOOL b);
00021 fsString GetCookiesFromResponse();
00022 void set_UseMultipart (BOOL b);
00023 fsInternetResult Write (LPBYTE pBuffer, DWORD dwSize, DWORD *pdwWritten);
00024 fsInternetResult OpenEx(LPCSTR pszFilePath, UINT64 uStartPos, UINT64 uUploadPartSize = _UI64_MAX, UINT64 uUploadTotalSize = _UI64_MAX);
00025
00026
00027 void SetAdditionalHeaders(LPCSTR pszAdditionalHeaders);
00028
00029 LPCSTR GetPostData();
00030
00031 LPCSTR GetCookies();
00032 void SetPostData (LPCSTR pszPostData);
00033 void SetCookies (LPCSTR pszCookies);
00034
00035 BOOL get_UseCookie();
00036
00037 LPCSTR get_Referer ();
00038
00039 BOOL get_UseHttp11();
00040
00041 BOOL Is_Secure();
00042
00043 fsInternetResult QuerySize (LPCSTR pszFilePath);
00044
00045
00046 void RetreiveHeadersOnly(BOOL b = TRUE);
00047
00048 void UseCookie (BOOL bUse);
00049
00050 void UseSecure (BOOL bUse);
00051
00052 void SetReferer (LPCSTR pszReferer);
00053
00054 void UseHttp11 (BOOL bUse = TRUE);
00055
00056 fsInternetResult Open (LPCSTR pszFilePath, UINT64 uStartPos);
00057
00058 fsInternetResult Read(LPBYTE pBuffer, DWORD dwToRead, DWORD *pdwRead);
00059 fsHttpFile();
00060 virtual ~fsHttpFile();
00061
00062 protected:
00063 fsString m_strCharset;
00064 BOOL m_bEnableAutoRedirect;
00065 BOOL m_bUseMultipart;
00066 fsString m_strLabel;
00067 UINT64 m_uLeftToUpload;
00068
00069 void IgnoreSecurityProblems ();
00070 fsInternetResult Open_imp (LPCSTR pszFilePath, UINT64 uStartPos, int cTryings);
00071
00072
00073
00074 void RetreiveSuggFileName();
00075
00076 fsInternetResult ProcessRangesResponse();
00077
00078 fsInternetResult SetupProxy();
00079
00080
00081 LPSTR m_pszReferer;
00082 BOOL m_bHeadersOnly;
00083 DWORD m_dwFlags;
00084 LPSTR m_pszHttpVersion;
00085 LPSTR m_pszCookies;
00086 LPSTR m_pszPostData;
00087 LPSTR m_pszAdditionalHeaders;
00088 };
00089
00090 #endif