31 #ifndef CPL_HTTP_H_INCLUDED 32 #define CPL_HTTP_H_INCLUDED 36 #include "cpl_progress.h" 46 #define CPL_HTTP_MAX_RETRY 0 47 #define CPL_HTTP_RETRY_DELAY 30.0 53 typedef struct {
char **papszHeaders;
55 GByte *pabyData;
int nDataLen;
91 typedef size_t (*CPLHTTPFetchWriteFunc)(
void *pBuffer,
size_t nSize,
size_t nMemb,
void *pWriteArg);
97 GDALProgressFunc pfnProgress,
99 CPLHTTPFetchWriteFunc pfnWrite,
103 int nMaxSimultaneous,
121 const char *pszScope );
123 const char *pszScope );
126 const char* pszPrivateKey,
127 const char* pszClientEmail,
128 const char* pszScope,
136 #if defined(__cplusplus) && !defined(CPL_SUPRESS_CPLUSPLUS) 139 void* CPLHTTPSetOptions(
void *pcurl,
const char *
const* papszOptions);
140 char** CPLHTTPGetOptionsFromEnv();
141 double CPLHTTPGetNewRetryDelay(
int response_code,
double dfOldDelay);
142 void* CPLHTTPIgnoreSigPipe();
143 void CPLHTTPRestoreSigPipeHandler(
void* old_handler);
144 bool CPLMultiPerformWait(
void* hCurlMultiHandle,
int& repeats);
168 ACCESS_TOKEN_FROM_REFRESH,
174 const char* pszClientId,
175 const char* pszClientSecret,
178 const char* pszClientEmail,
179 const char* pszScope,
197 mutable time_t m_nExpirationTime;
215 #endif // __cplusplus const char * GetBearer() const
Definition: cpl_google_oauth2.cpp:681
AuthMethod GetAuthMethod() const
Definition: cpl_http.h:184
CPLMimePart * pasMimePart
Definition: cpl_http.h:86
CPLHTTPResult * CPLHTTPFetch(const char *pszURL, CSLConstList papszOptions)
Fetch a document from an url and return in a string.
Definition: cpl_http.cpp:620
#define CPL_C_START
Definition: cpl_port.h:335
bool CPLIsMachineForSureGCEInstance()
Definition: cpl_google_cloud.cpp:58
void CPLHTTPCleanup(void)
Cleanup function to call at application termination.
Definition: cpl_http.cpp:1870
char * pszContentType
Definition: cpl_http.h:66
int CPLHTTPParseMultipartMime(CPLHTTPResult *psResult)
Parses a MIME multipart message.
Definition: cpl_http.cpp:1965
void CPLHTTPDestroyResult(CPLHTTPResult *psResult)
Clean the memory associated with the return value of CPLHTTPFetch()
Definition: cpl_http.cpp:1932
CPLHTTPResult * CPLHTTPFetchEx(const char *pszURL, CSLConstList papszOptions, GDALProgressFunc pfnProgress, void *pProgressArg, CPLHTTPFetchWriteFunc pfnWrite, void *pWriteArg)
Definition: cpl_http.cpp:636
unsigned char GByte
Definition: cpl_port.h:213
char ** papszHeaders
Definition: cpl_http.h:80
Convenient string class based on std::string.
Definition: cpl_string.h:336
char ** GOA2GetAccessTokenFromCloudEngineVM(CSLConstList papszOptions)
Definition: cpl_google_oauth2.cpp:418
CPLHTTPResult ** CPLHTTPMultiFetch(const char *const *papszURL, int nURLCount, int nMaxSimultaneous, CSLConstList papszOptions)
Fetch several documents at once.
Definition: cpl_http.cpp:1102
char * GOA2GetAccessToken(const char *pszRefreshToken, const char *pszScope)
Definition: cpl_google_oauth2.cpp:387
bool SetAuthFromRefreshToken(const char *pszRefreshToken, const char *pszClientId, const char *pszClientSecret, CSLConstList papszOptions)
Definition: cpl_google_oauth2.cpp:599
int CPLHTTPEnabled(void)
Return if CPLHTTP services can be useful.
Definition: cpl_http.cpp:1853
bool SetAuthFromGCE(CSLConstList papszOptions)
Definition: cpl_google_oauth2.cpp:574
char ** CSLConstList
Definition: cpl_port.h:1184
int nMimePartCount
Definition: cpl_http.h:83
bool SetAuthFromServiceAccount(const char *pszPrivateKey, const char *pszClientEmail, const char *pszScope, CSLConstList papszAdditionalClaims, CSLConstList papszOptions)
Definition: cpl_google_oauth2.cpp:635
void CPLHTTPDestroyMultiResult(CPLHTTPResult **papsResults, int nCount)
Clean the memory associated with the return value of CPLHTTPMultiFetch()
Definition: cpl_http.cpp:1350
String list class designed around our use of C "char**" string lists.
Definition: cpl_string.h:447
int nDataAlloc
Definition: cpl_http.h:74
int nDataLen
Definition: cpl_http.h:72
const CPLString & GetClientEmail() const
Definition: cpl_http.h:192
AuthMethod
Definition: cpl_http.h:164
bool CPLIsMachinePotentiallyGCEInstance()
Definition: cpl_google_cloud.cpp:110
Definition: cpl_http.h:61
int nStatus
Definition: cpl_http.h:63
Definition: cpl_http.h:157
char ** GOA2GetAccessTokenFromServiceAccount(const char *pszPrivateKey, const char *pszClientEmail, const char *pszScope, CSLConstList papszAdditionalClaims, CSLConstList papszOptions)
Definition: cpl_google_oauth2.cpp:459
GByte * pabyData
Definition: cpl_http.h:77
Definition: cpl_http.h:53
#define CPL_C_END
Definition: cpl_port.h:337
char * pszErrBuf
Definition: cpl_http.h:69
const CPLString & GetPrivateKey() const
Definition: cpl_http.h:189
char * GOA2GetRefreshToken(const char *pszAuthToken, const char *pszScope)
Definition: cpl_google_oauth2.cpp:164
char * GOA2GetAuthorizationURL(const char *pszScope)
Definition: cpl_google_oauth2.cpp:127
GOA2Manager()
Definition: cpl_google_oauth2.cpp:556