PureBasic
PureBasic
Load XML Object from HTTP Response Body
Demonstrates how to load the HTTP response body directly into an XML object.Chilkat PureBasic Downloads
IncludeFile "CkHttpResponse.pb"
IncludeFile "CkHttp.pb"
IncludeFile "CkXml.pb"
Procedure ChilkatExample()
success.i = 0
http.i = CkHttp::ckCreate()
If http.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
resp.i = CkHttpResponse::ckCreate()
If resp.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
success = CkHttp::ckHttpStr(http,"GET","https://www.chilkatsoft.com/exampledata/inventory.xml","","","",resp)
If success = 0
Debug CkHttp::ckLastErrorText(http)
CkHttp::ckDispose(http)
CkHttpResponse::ckDispose(resp)
ProcedureReturn
EndIf
xml.i = CkXml::ckCreate()
If xml.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
; If we wish to transfer (instead of copy) the XML from the HttpResponse to the Xml, then add the keyword "TakeResponseBody" to UncommonOptions
; This could save memory for extremely large XML responses.
CkHttpResponse::setCkUncommonOptions(resp, "TakeResponseBody")
CkHttpResponse::ckGetBodyXml(resp,xml)
Debug CkXml::ckGetXml(xml)
; Note: If UncommonOptions contained "TakeResponseBody", then the response BodyStr will now be empty:
Debug "----"
Debug CkHttpResponse::ckBodyStr(resp)
CkHttp::ckDispose(http)
CkHttpResponse::ckDispose(resp)
CkXml::ckDispose(xml)
ProcedureReturn
EndProcedure