Description
Sends the HTTP POST 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 recommended 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
Syntax
objectname.SendPostRequest(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
Example
The following example adds a data record and then submits it to server via SendPostRequest.
String ls_P020_Responsebody,ls_Token,ls_PostData Long ll_InsertRow Integer li__P020_SendReturn Integer li_P020_GetTokenReturn RestClient lrc_P020 lrc_P020 = Create RestClient //Sets the token parameters TokenRequest ltreq_Appeon ltreq_Appeon.tokenlocation = "https://demo.appeon.com/pb/identityserver/connect/token" ltreq_Appeon.method = "post" ltreq_Appeon.GrantType = "password" ltreq_Appeon.ClientId = "P0VRQ-ddHn/WWd6lcCNJbaO9ny-JCNHirDJkHNgZ0-M=" ltreq_Appeon.ClientSecret = "K7gNU3sdo-OL0wNhqoVWhr3g6s1xYv72ol/pe/Unols=" ltreq_Appeon.UserName = "TestUser" ltreq_Appeon.PassWord = "TestPassword" //Gets token via RESTClient li_P020_GetTokenReturn = lrc_P020.GetOauthtoken( ltreq_Appeon, ls_Token) If li_P020_GetTokenReturn = 1 Then lrc_P020.SetRequestHeaders( "Content-Type:application/json;charset=UTF-8~r~nAccept-Encoding:gzip" ) lrc_P020.SetOauthToken( ls_Token ) //Sets the token authentication //Adds a new data row ll_InsertRow = dw_Data.InsertRow( 0 ) //Sets the data value dw_Data.SetItem(ll_InsertRow,1,0) dw_Data.SetItem(ll_InsertRow,2,"TestCreate"+String(rand(50))) //Once https://demo.appeon.com/PB/webapi_client/api/department/create Web service detects that //the passed-in department id is smaller than 1, it will automatically finds the largest ID //value and assigns value to it ls_PostData=dw_Data.Exportrowasjson( ll_InsertRow)//Exports the newly added data row from dw_Data to JSON string li__P020_SendReturn = lrc_P020.SendPostRequest("https://demo.appeon.com/PB/webapi_client/api/department/create", ls_PostData, ls_P020_Responsebody) If li__P020_SendReturn <> 1 Or lrc_P020.GetResponseStatusCode() <> 201 Then //Checks if any error information End If //Finds out if the newly added data exists via https://demo.appeon.com/PB/webapi_client/api/department/retrieve lrc_P020.Retrieve( dw_Data, "https://demo.appeon.com/PB/webapi_client/api/department/retrieve") Else //Gets the token failure error End If If IsValid(lrc_P020) Then Destroy lrc_P020
See also