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