ONLINE HELP
 WINDEVWEBDEV AND WINDEV MOBILE

This content has been translated automatically.  Click here  to view the French version.
Help / WLanguage / WLanguage functions / Communication / HTTP functions
  • Properties specific to restRequest variables
  • Managing redirections
  • HTTP cookies
WINDEV
WindowsLinuxJavaReports and QueriesUser code (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Browser code
WINDEV Mobile
AndroidAndroid Widget iPhone/iPadIOS WidgetApple WatchMac Catalyst
Others
Stored procedures
restRequest (Variable type)
In french: restRequête
The restRequest type is used to define the advanced characteristics of a REST request. You can define and change the characteristics of the REST request using different WLanguage properties.
Note: For more details on the declaration of this type of variable and the use of WLanguage properties, see Declaring a variable.
Example
cMyRequest is httpRequest
cMyRequest.URL = "http://www.windev.com"
cMyResponse is httpResponse = RESTSend(cMyRequest)
IF ErrorOccurred THEN
	Error(ErrorInfo(errFullDetails))
ELSE
	Info(cMyResponse.Content)
END
Properties

Properties specific to restRequest variables

The following properties can be used to handle a REST request:
Property nameType usedEffect
AuthenticationInteger constantDefines the authentication method required to access resources in a given server or website:
  • auBasic: The name and password are in clear text in the request..
  • auDigest The name and password in the request are modified via a hash.
  • auNegotiate: Client and server exchange a certain amount of information before establishing a connection. Kerberos is the default authentication protocol. If it is not available, the NTLM protocol is used.
  • auNTLM: Client and server exchange a certain amount of information before establishing a connection via the NTLM protocol (Windows only)..
Note: Although still widely used, the NTLM protocol is no longer recommended..
AuthTokenAuthToken variableToken for accessing a web service that will be used in case of authentication via the OAuth 2.0 protocol. This access token is retrieved by AuthIdentify.
The access token is automatically passed to the access_token parameter on the URL. If the parameter must be different, the http URL to run must be built by yourself.
WEBDEV - Browser code Not available.
ClientCertificateString or bufferCorresponds to:
  • a character string with an access path to the .p12 file that contains the certificate to attach to the request. The certificate will be automatically loaded taking into account:
    • the certificate in the executable library (if it has been integrated into the application),
    • the certificate at the specified location on disk (if the certificate has not been integrated into the executable library).
  • a buffer with the certificate (fLoadBuffer).
If this property is set to an empty string (""), the default certificate is reset to "<None>".
ClientCertificatePasswordCharacter string or Secret stringPassword associated with the client certificate (empty string by default).
New in version 2025
Secret strings: The secret string can be of one of the following types: Ansi string - Latin, Ansi or Unicode string, Unicode string..
To learn more about secret strings and how to use the vault, see Secret string vault.
ConnectionTimeoutIntegerMaximum timeout for the connection expressed in milliseconds (20 seconds by default, i.e. 20000 milliseconds). This property can correspond to:
  • an integer representing the number of milliseconds,
  • a Duration variable,
  • the duration in a readable format (e.g., '20s' or '20000ms').
The connection fails if it cannot be established after this timeout (RESTSend will return an error, in the restResponse result variable).
WEBDEV - Browser code Not available.
ContentBufferHTTP message that will be sent to the server. This property is taken into account only if the sending method (Method property) allows it.
The message to send must comply with the HTTP protocol used. By default, if this property is specified and if it is not empty, the method used is a POST request ; otherwise, it is a GET request.
ContentTypeCharacter stringType of the HTTP message content to be sent to the server. This property is taken into account only if the sending method (Method property) allows it.
The default message type is: "application/x-www-form-urlencoded".
However, any value is possible, for example: "text/xml", "application/javascript", "application/json", "application/xml", "image/jpeg", ...
To send raw data, which will be read at once by the WEBDEV Application Server, use the following types:
  • "application/octet-stream".
  • "text/xml".
DestinationCharacter stringFull path of the backup file of the HTTP request result.
WEBDEV - Browser code Not available.
DownloadProgresshttpProgress variableData reception progress notification.
HeaderAssociative array of character stringsKey/Value set of headers to send.
Usage example of this property:
cMyRequest is httpRequest

cMyRequest.Header["Authorization"] = ...
	" WSSE profile=""UsernameToken"""
cMyRequest.Header["X-WSSE"] = ...
	"UsernameToken Username=blahblah "
cMyRequest.Header["Cache-Control"] = " no-cache"
Behavior change from version 29 Update 3:
  • Prior to version 29 Update 3, empty headers are not transmitted..
  • From version 29 Update 3empty headers are transmitted. Example:
    req is httpRequest
    req..Header["Empty"] = ""
    req.Send()
    Now the "Empty" header is passed to the server when the request is sent, and its value is an empty string.
IgnoreErrorInteger constantSpecifies the ignored errors. Corresponds to a constant or to a combination of constants:
  • httpIgnoreCertificateInvalid The certificate is ignored.
  • httpIgnoreCertificateNameInvalid: The site name in the certificate is ignored.
  • httpIgnoreCertificateExpired: Certificate date ignored.
  • httpIgnoreDeprecated Ignore errors related to the use of deprecated algorithms (e.g. SHA-1 certificate signature).
  • httpIgnoreRedirection: Redirection to a page is ignored.
  • httpIgnoreRenvoiHTTP: Forwarding to a non-secure server is authorized.
  • httpIgnoreRenvoiHTTPS: Forwarding to a secure server is authorized.
  • httpIgnoreNonSecureNegotiation: Ignores the error stating that the server does not support secure renegotiation (RFC 5746).
  • httpIgnoreRevocation: The check in the list of revoked certificates is ignored.
AndroidAndroid Widget Only the following errors are handled: httpIgnoreCertificateExpired, httpIgnoreCertificatInvalid, httpIgnoreCertificateNameInvalid, httpIgnoreRevocation, httpIgnoreRedirection.
WEBDEV - Browser code Not available.
MaxDownloadRateInteger| Maximum data download speed in kilobytes per second. This speed is given for information only.
0 (default value) means that this speed is not limited.
WEBDEV - Browser code Not available.
WEBDEV - Browser code Not available.
MaxUploadRateIntegerMaximum data upload speed in kilobytes per second. This speed is given for information only.
0 (default value) means that this speed is not limited.
WEBDEV - Browser code Not available.
MethodInteger constantHTTP method used:
  • httpCopy COPY method (value 7).
  • httpDelete DELETE method (value 4).
  • httpGet GET method (value 1).
  • httpHead HEAD method (value 5).
  • httpLock LOCK method (value 12) (WebDAV protocol).
  • httpMkCol MKCOL method (value 10) (WebDAV protocol).
  • httpMove MOVE method (value 11) (WebDAV protocol).
  • httpPatch PATCH method (value 6).
  • httpPost POST method (value 2).
  • httpPropFind PROPFIND method (value 8) (WebDAV protocol).
  • httpPropPatch PROPPATCH method (value 9) (WebDAV protocol).
  • httpPut PUT method (value 3).
  • httpUnlock UNLOCK method (value 13) (WebDAV protocol).
If the Content property is not empty, the httpPost method is used by default. Otherwise, the httpGet method is used.
PasswordCharacter string or Secret stringPassword associated with the username (empty string by default). Used to access a page with a protected URL. Caution: The password is transmitted unencrypted over the Internet.
Note: By setting the UserName and Passwordproperties, the corresponding "Authorization:Basic" is automatically generated in the request header.
New in version 2025
Secret strings: If you use the secret string vault, the type of secret string used for this parameter must be "Ansi or Unicode string".
To learn more about secret strings and how to use the vault, see Secret string vault.
ProcedureTraceProcedureName of the WLanguage procedure used to identify the data and headers that have been sent and received. This procedure has the following format:
PROCEDURE <Procedure name>(<InfoType> is int,
<Data> is Buffer)
where:
  • <InfoType> is an integer constant that corresponds to the type of data being traced:
    • httpTraceDataSent: Data sent.
    • httpTraceDataRecue: Received data.
    • httpTraceEntêteEnvoyé: Sent header.
    • httpTraceEntêteRecu: Received header.
    • httpTraceInfo: Detailed information on request execution (low-level cURL/OpenSSL error, step in progress, warnings, etc.).
  • <Data> is a buffer that contains the information.
Procedure example:
PROCEDURE ProcTrace(nInfoType is int, ...
		bufByData is Buffer)
	SWITCH nInfoType
		CASE httpTraceHeaderSent
			Trace("Entete : ", ...
				UTF8ToString(bufByData))
		CASE httpTraceDataSent:
			Trace("Data : ", ...
					bufByData)
		CASE httpTraceHeaderReceived:
			Trace("Received header: ", ...
				UTF8ToString(bufByData))
		CASE httpTraceDataReceived:
			Trace("Received data: ", ...
					bufByData)
	END
WEBDEV - Browser code Not available.
WEBDEV - Browser code ResponseRawContent
BooleanIndicates whether the Content property corresponds to the raw content:
  • True: the Content property corresponds to a buffer. No modification is performed.
  • False (Default): content is modified by the browser. In particular, UTF-8 text is automatically decoded. the Content property returns the result as a string.
SelectedCipherCharacter stringName of the cipher selected for the secure request.
This property is available in read-only mode.
SelectedSSLVersionInteger constantSSL version chosen for a secure request:
  • DefaultProtocol: Default protocol (TLS 1.2).
  • TLS1 protocol: TLS1 protocol.
  • TLS1_1 protocol: TLS1.1 protocol.
  • TLS1_2 protocol: TLS1.2 protocol.
  • TLS1_3 protocol: TLS1.3 protocol.
WEBDEV - Browser code Not available.
This property is available in read-only mode.
TimeoutIntegerMaximum response timeout (in milliseconds). This property can correspond to:
  • an integer representing the number of milliseconds,
  • a Duration variable,
  • the duration in a readable format (e.g., '1s' or '10ms').
This property is set to 20 seconds by default.
Note: The timeout defined with function HTTPTimeOut has no influence on this property.
WEBDEV - Browser code Not available.
UploadProgresshttpProgress variableNotification of the progress status when uploading POST data.
URLCharacter stringAddress of server to contact (URL address).
This URL can contain:
  • the port number for connecting to the server.
    The default value is 80 in HTTP (corresponds to a server of Web pages) and 443 in HTTPS. To specify a port number, use the format: "<Server URL>:<Port number>". For example: "http://www.pcsoft.fr:80".
  • additional parameters. These parameters can be used to perform a search or to fill a form. For example, to search for "pcsoft" on "http://www.google.fr", the URL to contact would be: "http://www.google.fr/search?q=pcsoft".
Remarks:
  • To specify both the port number and additional parameters, use the format: "<Server URL>:<Port Number>/<Additional Parameters>".
  • To perform a secure transaction, the URL must start with "https://". In this case, the management mode of requests is always performed by Internet Explorer (for more details, see HTTPConfigure).
UserCharacter stringName used to access a page with a protected URL (empty string by default). This name is used to identify the user.
Note: By entering the properties User and Password, the corresponding "Authorization:Basic" is automatically generated in the request header.
UserAgentCharacter stringIdentifies the client. By default, the value corresponds to the application name.
The response content may depend on the user agent (for example, different pages are required by a request performed from a Palm Pilot and a request performed from a PC browser). In this case, for more details, see the documentation of user agent.
WEBDEV - Browser code Not available.
VersionHTTPInteger constantHTTP version used by the server:
  • httpVersion2: HTTP protocol version 2.0. If the server does not support this version, an older version is used.
  • httpVersion2Uniquement: HTTP protocol version 2.0 forced: if the server does not support this version, a fatal error is displayed..
  • httpVersion1_1: HTTP protocol version 1.1.
  • httpVersion1_0: HTTP Protocol Version 1.0.
  • httpVersionDefault: HTTP Protocol Version 1.0.
VersionSSLInteger constantMinimum and maximum SSL version supported.
To set the minimum and maximum TLS versions to 1.1 and 1.3, simply specify the ProtocolTLS1_1 + ProtocolTLS1_3 constants
The following constants can be used:
  • Default protocol: Default protocol. Maximum version supported (or a lower version if the server does not support this protocol).
  • TLS1 protocol: TLS1 protocol.
  • TLS1_1 protocol: TLS1.1 protocol.
  • TLS1_2 protocol: TLS1.2 protocol.
  • TLS1_3 protocol: TLS1.3 protocol.
WEBDEV - Browser code Not available.
Remarks

Managing redirections

Redirections are supported by default. To ignore redirections, use the httpIgnoreRedirection constant in the IgnoreError property.
WINDEVWEBDEV - Server codeAndroidAndroid Widget iPhone/iPadAjax

HTTP cookies

Cookies received in response to a call to the RESTSend function are kept pending a subsequent call to the RESTSend function on the same domain: the restRequête type variable is updated..
For more details, see HTTPCookieManage.
Minimum version required
  • Version 20
This page is also available for…
Comments
Video httpput
PROPAGANDA AULA 2025 RESTREQUEST
https://youtu.be/cJZm-WrAPgM
AULA COMPLETA 2025 RESREQUEST
https://youtu.be/d3zULOtHQjs
https://windevdesenvolvimento.blogspot.com/2019/02/dicas-2025-windev-mobile-webservice-021_23.html
// BTN_ALTERA_httpPut
solicitacao_http is restRequest
URL is string="http://nots-amarildo/empresa/{nEmpresaId}"
URL = Replace(URL,"{nEmpresaId}","2")
solicitacao_http..URL=URL
solicitacao_http..ContentType="application/json"
solicitacao_http..Method=httpPut
solicitacao_http..Content=[
{
"razao_social"
:
"ALTERADO1205"
}
]
resposta_http is restResponse = RESTSend(solicitacao_http)
EDT_RETORNO=resposta_http..Content
amarildo
23 Feb. 2019
Video RestREquest


https://youtu.be/G7oY3hd7Jo0

https://windevdesenvolvimento.blogspot.com/2019/02/dicas-2023-windev-mobile-webservice-019.html

solicitacao_http is restRequest
sUrl is string="http://localhost/empresa/{nEmpresaid}"
sUrl=Replace(sUrl,"{nEmpresaid}","2")
solicitacao_http..URL=sUrl
solicitacao_http..Method=httpGet
resposta_http is restResponse = RESTSend(solicitacao_http)
IF ErrorOccurred THEN
Error(ErrorInfo(errFullDetails))
ELSE
EDT_RETORNO=resposta_http..Content
END

amarildo
22 Feb. 2019
Video Restquest
https://youtu.be/VvMa-5kUZkQ

https://windevdesenvolvimento.blogspot.com/2019/02/dicas-2022-windev-mobile-webservice-018.html

solicitacao_http is restRequest
solicitacao_http..URL="http://nots-amarildo/empresa"
solicitacao_http..Method=httpGet
resposta_http is restResponse = RESTSend(solicitacao_http)
IF ErrorOccurred THEN
Error(ErrorInfo(errFullDetails))
ELSE
EDT_RETORNO=resposta_http..Content
END
amarildo
20 Feb. 2019

Last update: 12/15/2024

Send a report | Local help