SendPutRequest

Description

Sends the HTTP PUT request to the server and then gets the content of the server response. It does not parse the HTTP response code and content of the server response.

It is NOT supported to use this method to process large data (20 MB or 100,000 data rows can be considered as large data based on our tests).

Applies to

RESTClient object

Syntax

objectname.SendPutRequest(string urlName, string data, ref string response)

Argument

Description

objectname

The name of the RESTClient object from which you want to send the request.

urlName

A string value specifying the URL.

data

A string value specifying the data to send.

If the user sets the encoding charset in the Content-Type request header, this function will encode the data with the specified charset; if charset is not specified, this function will encode the data in UTF-8 by default.

response

The content of the server response.

If RESTClient failed to send request or server provides no response, the response value is an empty string. If the response value is compressed as gzip, it will be automatically decompressed. Only gzip compression format is supported at this moment. If the server specified the Content-Type response header, and in which the encoding charset is specified, this function will encode the data with the specified charset; if charset is not specified, this function will encode the data in UTF-8 by default.


Return value

Integer. Returns 1 if the function succeeds and a negative value if an error occurs. If any argument's value is null, the method returns null.

1 -- Success.

-1 -- General error.

-2 -- Invalid URL.

-3 -- Cannot connect to the Internet.

-4 -- Timeout.

-7 -- Failed to decompress data.

-10 -- The token is invalid or has expired.

-14 -- Code conversion failed.

-15 -- Unsupported character set.

-18 -- Certification revocation checking has been enabled, but the revocation check failed to verify whether a certificate has been revoked. The server used to check for revocation might be unreachable.

-19 -- SSL certificate is invalid.

-20 -- SSL certificate was revoked.

-21 -- The function is unfamiliar with the Certificate Authority that generated the server's certificate.

-22 -- SSL certificate common name (host name field) is incorrect, for example, if you entered www.appeon.com and the common name on the certificate says www.devmagic.com.

-23 -- SSL certificate date that was received from the server is bad. The certificate has expired.

-24 -- The certificate was not issued for the server authentication purpose.

-25 -- The application experienced an internal error loading the SSL libraries.

-26 -- More than one type of errors when validating the server certificate.

-27 -- The server requires the client to provide a certificate.

-28 -- The client certificate has not been assigned with a private key.

-29 -- The client certificate has no accessible private key.

-30 -- Cannot find the specified certificate.

-31 -- Failed to read the certificate.

-32 -- The certificate password is wrong.

-33 -- TLS 1.3 error. The client does not support TLS 1.3.

-34 -- Response is unrecognizable. Normally this is because the HTTP version does not match with the version required by the server.

-35 -- TLS 1.3 error. The server does not support TLS 1.3.

Example

The following example updates the value of Department Name for the current row via SendPutRequest.

RestClient lrc_P021
String  ls_P021_Response
String ls_P021_PostData
String ls_P021_Token
Integer li_P021_SendReturn
Integer li_P021_GetTokenReturn
lrc_P021 = Create RestClient

//Sets the token parameters
TokenRequest ltreq_P021_Appeon
ltreq_P021_Appeon.tokenlocation = "https://demo.appeon.com/pb/identityserver/connect/token"
ltreq_P021_Appeon.method = "post"
ltreq_P021_Appeon.GrantType = "password"
ltreq_P021_Appeon.ClientId = "P0VRQ-ddHn/WWd6lcCNJbaO9ny-JCNHirDJkHNgZ0-M="
ltreq_P021_Appeon.ClientSecret = "K7gNU3sdo-OL0wNhqoVWhr3g6s1xYv72ol/pe/Unols=" 
ltreq_P021_Appeon.UserName = "TestUser"
ltreq_P021_Appeon.PassWord = "TestPassword"

//Gets token via RESTClient
li_P021_GetTokenReturn = lrc_P021.GetOauthtoken( ltreq_P021_Appeon, ls_P021_Token)
If li_P021_GetTokenReturn = 1 Then

lrc_P021.SetRequestHeaders( "Content-Type:application/json;charset=UTF-8~r~nAccept-Encoding:gzip" )
lrc_P021.SetOauthToken( ls_P021_Token ) //Sets the authentication

lrc_P021.Retrieve( dw_Data, "https://demo.appeon.com/PB/webapi_client/api/department/retrieve")
If dw_Data.GetRow() > 0 Then
 //Modifies the data in DataWindow
 dw_Data.SetItem(dw_Data.GetRow(),2,"Update"+String(rand(50)))
 //Exports a DataWindow row to JSON string
 ls_P021_PostData=dw_Data.Exportrowasjson( dw_Data.GetRow())
 li_P021_SendReturn = lrc_P021.SendPutRequest("https://demo.appeon.com/PB/webapi_client/api/department/update",ls_P021_PostData, ls_P021_Response)
  If li_P021_SendReturn <> 1 Or lrc_P021.GetResponseStatusCode() <> 200 Then
   //Checks the error information
  End If
 //Finds out if data is modified via https://demo.appeon.com/PB/webapi_client/api/department/retrieve
 lrc_P021.Retrieve( dw_Data, "https://demo.appeon.com/PB/webapi_client/api/department/retrieve")
End If
Else
//Gets the token failure error
End If

See also

SendGetRequest

SendPostRequest

SendDeleteRequest

SendPatchRequest