SendCustomRequest Method

Sends a custom request to the server.


ANSI (Cross Platform)
int SendCustomRequest(const char* lpszHttpMethod, const char* lpszObjectName, const char* lpszRequestBody);

Unicode (Windows)
INT SendCustomRequest(LPCWSTR lpszHttpMethod, LPCWSTR lpszObjectName, LPCWSTR lpszRequestBody);
- (void)sendCustomRequest:(NSString*)httpMethod :(NSString*)objectName :(NSString*)requestBody;

IPWORKSS3_EXTERNAL int IPWORKSS3_CALL IPWorksS3_S3Client_Do(void *lpObj, int methid, int cparam, void *param[], int cbparam[], int64 *lpllVal);


This method can be used to send arbitrary requests to the server.

Valid values for HttpMethod are:

  • GET (default if empty)
  • HEAD
  • POST
  • PUT

The ObjectName and RequestBody parameters may be empty if not needed.


When this method is called, the class does the following:

  1. Builds a request URL, including query parameters, based on the following:
    • UseSSL, Region, and UseVirtualHosting for the base URL.
      • Alternatively, if ServiceProvider is spCustom (255), the custom URL specified using the URL configuration setting is used directly, and these properties are ignored.
    • Bucket (if non-empty)
    • ObjectName (if non-empty)
    • VersionId (if both it and ObjectName are non-empty)
    • QueryParam*
  2. Adds request headers from:
  3. Signs the request (unless the SignCustomRequest configuration setting is disabled).
  4. Sends the request, including RequestBody if non-empty.
  5. Stores the response headers in the ParsedHeader* properties; and the response body in the stream specified using SetDownloadStream, the specified LocalFile, or ObjectData (using the same logic as GetObject).

If the response body is XML data, the XPath, XText, and other X* configuration settings can then be used to navigate and extract information from it.

Error Handling (C++)

This method returns a result code; 0 indicates success, while a non-zero error code indicates that this method encountered an error during its execution. If an error occurs, the GetLastError() method can be called to retrieve the associated error message. (Note: This method's result code can also be obtained by calling the GetLastErrorCode() method after it returns.)

Copyright (c) 2022 /n software inc. - All rights reserved.
IPWorks S3 2020 C++ Edition - Version 20.0 [Build 8164]