PureBasic
PureBasic
HTTP Methods - GET and DELETE
Demonstrate a method for sending HTTP requests that don't have a request body, such as for GET or DELETE requests.Chilkat PureBasic Downloads
IncludeFile "CkHttpResponse.pb"
IncludeFile "CkHttp.pb"
Procedure ChilkatExample()
success.i = 0
; This example assumes the Chilkat API to have been previously unlocked.
; See Global Unlock Sample for sample code.
http.i = CkHttp::ckCreate()
If http.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
; Specifiy a session log file so we can see the exact request/response
CkHttp::setCkSessionLogFilename(http, "c:/aaworkarea/sessionLog.txt")
; Perhaps add a custom header or two..
CkHttp::ckSetRequestHeader(http,"x-exz-date","20201012T235046Z")
CkHttp::ckSetRequestHeader(http,"x-exz-id","1234")
; Send a GET request to https://www.example.com/someting?param1=123¶m2=abc
url.s = "https://www.example.com/someting?param1=123¶m2=abc"
resp.i = CkHttpResponse::ckCreate()
If resp.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
success = CkHttp::ckHttpNoBody(http,"GET",url,resp)
If success = 0
Debug CkHttp::ckLastErrorText(http)
CkHttp::ckDispose(http)
CkHttpResponse::ckDispose(resp)
ProcedureReturn
EndIf
; The GET request that is sent looks like this.
; The Accept and Accept-Encoding headers are automatically added by default.
; GET /someting?param1=123¶m2=abc HTTP/1.1
; Host: www.example.com
; Accept: */*
; Accept-Encoding: gzip
; x-exz-date: 20201012T235046Z
; x-exz-id: 1234
; Get the response status
statusCode.i = CkHttpResponse::ckStatusCode(resp)
Debug "Response status: " + Str(statusCode)
; Get the response body
Debug CkHttpResponse::ckBodyStr(resp)
; -------------------------------------------------------------
; Let's say we want to send a DELETE request, and we only want to accept an application/json response,
; and we don't want gzipped responses...
; First remove the previously specified custom headers.
CkHttp::ckClearHeaders(http)
; Indicate we only accept application/json non-gzipped responses.
CkHttp::setCkAccept(http, "application/json")
CkHttp::setCkAllowGzip(http, 0)
; Send a DELETE request to https://www.example.com/deleteSomething
url = "https://www.example.com/deleteSomething"
success = CkHttp::ckHttpNoBody(http,"DELETE",url,resp)
If success = 0
Debug CkHttp::ckLastErrorText(http)
CkHttp::ckDispose(http)
CkHttpResponse::ckDispose(resp)
ProcedureReturn
EndIf
; The DELETE request that is sent looks like this.
; The empty Accept-Encoding header value means we only want non-compressed responses.
; DELETE /deleteSomething HTTP/1.1
; Host: www.example.com
; Accept: application/json
; Accept-Encoding:
; Get the response status
statusCode = CkHttpResponse::ckStatusCode(resp)
Debug "Response status: " + Str(statusCode)
; Get the response body
Debug CkHttpResponse::ckBodyStr(resp)
CkHttp::ckDispose(http)
CkHttpResponse::ckDispose(resp)
ProcedureReturn
EndProcedure