Go to the documentation of this file.
31 #ifndef CPL_HTTP_H_INCLUDED
32 #define CPL_HTTP_H_INCLUDED
36 #include "cpl_progress.h"
46 #ifndef CPL_HTTP_MAX_RETRY
47 #define CPL_HTTP_MAX_RETRY 0
50 #ifndef CPL_HTTP_RETRY_DELAY
51 #define CPL_HTTP_RETRY_DELAY 30.0
58 typedef struct {
char **papszHeaders;
60 GByte *pabyData;
int nDataLen;
96 typedef size_t (*CPLHTTPFetchWriteFunc)(
void *pBuffer,
size_t nSize,
size_t nMemb,
void *pWriteArg);
102 GDALProgressFunc pfnProgress,
104 CPLHTTPFetchWriteFunc pfnWrite,
108 int nMaxSimultaneous,
126 const char *pszScope );
128 const char *pszScope );
131 const char* pszPrivateKey,
132 const char* pszClientEmail,
133 const char* pszScope,
141 #if defined(__cplusplus) && !defined(CPL_SUPRESS_CPLUSPLUS)
144 void* CPLHTTPSetOptions(
void *pcurl,
const char *pszURL,
const char *
const* papszOptions);
145 char** CPLHTTPGetOptionsFromEnv();
146 double CPLHTTPGetNewRetryDelay(
int response_code,
double dfOldDelay,
147 const char* pszErrBuf,
const char* pszCurlError);
148 void* CPLHTTPIgnoreSigPipe();
149 void CPLHTTPRestoreSigPipeHandler(
void* old_handler);
150 bool CPLMultiPerformWait(
void* hCurlMultiHandle,
int& repeats);
174 ACCESS_TOKEN_FROM_REFRESH,
180 const char* pszClientId,
181 const char* pszClientSecret,
184 const char* pszClientEmail,
185 const char* pszScope,
203 mutable time_t m_nExpirationTime = 0;
221 #endif // __cplusplus
int nDataLen
Definition: cpl_http.h:62
CPLHTTPResult * CPLHTTPFetch(const char *pszURL, CSLConstList papszOptions)
Fetch a document from an url and return in a string.
Definition: cpl_http.cpp:648
const char * CPLReadLineL(VSILFILE *)
Definition: cpl_conv.cpp:630
GByte * pabyData
Definition: cpl_http.h:61
char ** CSLTokenizeString2(const char *pszString, const char *pszDelimiter, int nCSLTFlags)
Definition: cpl_string.cpp:836
unsigned char GByte
Definition: cpl_port.h:215
const char * GetBearer() const
Definition: cpl_google_oauth2.cpp:677
const CPLString & GetPrivateKey() const
Definition: cpl_http.h:195
char * GOA2GetAuthorizationURL(const char *pszScope)
Definition: cpl_google_oauth2.cpp:127
GByte * VSIGetMemFileBuffer(const char *pszFilename, vsi_l_offset *pnDataLength, int bUnlinkAndSeize)
Fetch buffer underlying memory file.
Definition: cpl_vsi_mem.cpp:959
void CPLHTTPDestroyMultiResult(CPLHTTPResult **papsResults, int nCount)
Clean the memory associated with the return value of CPLHTTPMultiFetch()
Definition: cpl_http.cpp:1466
Definition: cpl_http.h:163
int CPLHTTPParseMultipartMime(CPLHTTPResult *psResult)
Parses a MIME multipart message.
Definition: cpl_http.cpp:2113
void CPLHTTPDestroyResult(CPLHTTPResult *psResult)
Clean the memory associated with the return value of CPLHTTPFetch()
Definition: cpl_http.cpp:2080
void CPLHTTPCleanup(void)
Cleanup function to call at application termination.
Definition: cpl_http.cpp:2018
String list class designed around our use of C "char**" string lists.
Definition: cpl_string.h:438
void * CPLCalloc(size_t, size_t)
Definition: cpl_conv.cpp:138
void * VSIRealloc(void *, size_t)
Definition: cpl_vsisimple.cpp:681
const char * CSLFetchNameValueDef(CSLConstList papszStrList, const char *pszName, const char *pszDefault)
Definition: cpl_string.cpp:1646
char ** CSLSetNameValue(char **papszStrList, const char *pszName, const char *pszValue)
Definition: cpl_string.cpp:1877
Definition: cpl_http.cpp:339
bool CPLIsMachinePotentiallyGCEInstance()
Definition: cpl_google_cloud.cpp:110
int CSLCount(CSLConstList papszStrList)
Definition: cpl_string.cpp:147
char * pszContentType
Definition: cpl_http.h:71
Convenient string class based on std::string.
Definition: cpl_string.h:329
void * CPLRealloc(void *, size_t)
Definition: cpl_conv.cpp:225
#define EQUAL(a, b)
Definition: cpl_port.h:569
bool SetAuthFromRefreshToken(const char *pszRefreshToken, const char *pszClientId, const char *pszClientSecret, CSLConstList papszOptions)
Definition: cpl_google_oauth2.cpp:595
int VSIFCloseL(VSILFILE *) EXPERIMENTAL_CPL_WARN_UNUSED_RESULT
Close file.
Definition: cpl_vsil.cpp:1472
CPLHTTPResult * CPLHTTPFetchEx(const char *pszURL, CSLConstList papszOptions, GDALProgressFunc pfnProgress, void *pProgressArg, CPLHTTPFetchWriteFunc pfnWrite, void *pWriteArg)
Definition: cpl_http.cpp:664
#define CPLAssert(expr)
Definition: cpl_error.h:186
#define CPL_C_START
Definition: cpl_port.h:337
bool CPLTestBool(const char *pszValue)
Definition: cpl_string.cpp:1526
int nMimePartCount
Definition: cpl_http.h:88
char ** GOA2GetAccessTokenFromCloudEngineVM(CSLConstList papszOptions)
Definition: cpl_google_oauth2.cpp:418
char ** CSLConstList
Definition: cpl_port.h:1194
CPLHTTPResult ** CPLHTTPMultiFetch(const char *const *papszURL, int nURLCount, int nMaxSimultaneous, CSLConstList papszOptions)
Fetch several documents at once.
Definition: cpl_http.cpp:1219
Definition: cpl_http.h:66
GByte * pabyData
Definition: cpl_http.h:82
Definition: cpl_http.cpp:419
#define CPL_C_END
Definition: cpl_port.h:339
void CPLDebug(const char *, const char *,...)
Definition: cpl_error.cpp:602
#define STARTS_WITH(a, b)
Definition: cpl_port.h:578
void * CPLMalloc(size_t)
Definition: cpl_conv.cpp:168
char ** papszHeaders
Definition: cpl_http.h:85
int CPLHTTPEnabled(void)
Return if CPLHTTP services can be useful.
Definition: cpl_http.cpp:2001
const char * CPLSPrintf(const char *fmt,...)
Definition: cpl_string.cpp:977
char ** papszHeaders
Definition: cpl_http.h:59
char ** CSLAddNameValue(char **papszStrList, const char *pszName, const char *pszValue)
Definition: cpl_string.cpp:1838
Definition: cpl_http.h:58
Definition: cpl_multiproc.h:139
void CPLError(CPLErr eErrClass, CPLErrorNum err_no, const char *fmt,...)
Definition: cpl_error.cpp:308
const char * CPLParseNameValue(const char *pszNameValue, char **ppszKey)
Definition: cpl_string.cpp:1754
Definition: cpl_http.cpp:462
GUIntBig vsi_l_offset
Definition: cpl_vsi.h:140
bool SetAuthFromServiceAccount(const char *pszPrivateKey, const char *pszClientEmail, const char *pszScope, CSLConstList papszAdditionalClaims, CSLConstList papszOptions)
Definition: cpl_google_oauth2.cpp:631
void VSIFree(void *)
Definition: cpl_vsisimple.cpp:827
char ** CSLTokenizeStringComplex(const char *pszString, const char *pszDelimiter, int bHonourStrings, int bAllowEmptyTokens)
Definition: cpl_string.cpp:769
#define CPLE_NotSupported
Definition: cpl_error.h:109
AuthMethod
Definition: cpl_http.h:170
bool CPLIsMachineForSureGCEInstance()
Definition: cpl_google_cloud.cpp:58
void CPLSetConfigOption(const char *, const char *)
Definition: cpl_conv.cpp:1832
#define CPL_ARRAYSIZE(array)
Definition: cpl_port.h:1045
char ** GOA2GetAccessTokenFromServiceAccount(const char *pszPrivateKey, const char *pszClientEmail, const char *pszScope, CSLConstList papszAdditionalClaims, CSLConstList papszOptions)
Definition: cpl_google_oauth2.cpp:459
char * GOA2GetAccessToken(const char *pszRefreshToken, const char *pszScope)
Definition: cpl_google_oauth2.cpp:387
bool SetAuthFromGCE(CSLConstList papszOptions)
Definition: cpl_google_oauth2.cpp:570
char * pszErrBuf
Definition: cpl_http.h:74
int nStatus
Definition: cpl_http.h:68
void CSLDestroy(char **papszStrList)
Definition: cpl_string.cpp:200
int nDataLen
Definition: cpl_http.h:77
VSILFILE * VSIFOpenL(const char *, const char *)
Open file.
Definition: cpl_vsil.cpp:997
const char * CSLFetchNameValue(CSLConstList papszStrList, const char *pszName)
Definition: cpl_string.cpp:1674
CPLErr
Definition: cpl_error.h:52
char * GOA2GetRefreshToken(const char *pszAuthToken, const char *pszScope)
Definition: cpl_google_oauth2.cpp:164
const CPLString & GetClientEmail() const
Definition: cpl_http.h:198
Definition: cpl_http.cpp:1191
char * CPLStrdup(const char *)
Definition: cpl_conv.cpp:293
double CPLAtof(const char *)
Definition: cpl_strtod.cpp:117
int nDataAlloc
Definition: cpl_http.h:79
CPLMimePart * pasMimePart
Definition: cpl_http.h:91
#define CPLE_FileIO
Definition: cpl_error.h:103
#define CPLFree
Definition: cpl_conv.h:81
const char * CPLGetFilename(const char *)
Definition: cpl_path.cpp:260
AuthMethod GetAuthMethod() const
Definition: cpl_http.h:190
const char * CPLGetConfigOption(const char *, const char *)
Definition: cpl_conv.cpp:1692
FILE VSILFILE
Definition: cpl_vsi.h:156
#define CPLE_AppDefined
Definition: cpl_error.h:99
Generated for GDAL by
1.8.17.