CAPSoapHttp / getMessage
ASP AutoIt C C (Unicode) C++ C++ (Unicode) C# DataFlex Delphi Foxpro Go Java Node.js Objective-C Perl PHP Extension PowerBuilder Powershell PureBasic Python CkPython Ruby SQL Server Swift TCL VB.NET VB6 VBScript Xojo
IncludeFile "CkHttp.pb"
IncludeFile "CkHttpResponse.pb"
IncludeFile "CkXml.pb"
Procedure ChilkatExample()
xml.i = CkXml::ckCreate()
If xml.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
CkXml::setCkTag(xml, "soapenv:Envelope")
CkXml::ckAddAttribute(xml,"xmlns:soapenv","http://schemas.xmlsoap.org/soap/envelope/")
CkXml::ckAddAttribute(xml,"xmlns:req","http://gov.fema.ipaws.services/caprequest")
CkXml::ckAddAttribute(xml,"xmlns:WL5G3N1","http://gov.fema.ipaws.services/IPAWS_CAPService/")
CkXml::ckAddAttribute(xml,"xmlns:capreq","http://gov.fema.ipaws.services/caprequest")
CkXml::ckUpdateChildContent(xml,"soapenv:Header|WL5G3N1:request_Header|WL5G3N1:logonUser","xml")
CkXml::ckUpdateChildContent(xml,"soapenv:Header|WL5G3N1:request_Header|WL5G3N1:logonCogId","xml")
CkXml::ckUpdateChildContent(xml,"soapenv:Body|WL5G3N1:getMessageTypeDef|req:requestAPI","string")
CkXml::ckUpdateChildContent(xml,"soapenv:Body|WL5G3N1:getMessageTypeDef|req:requestOperation","string")
CkXml::ckUpdateChildContent(xml,"soapenv:Body|WL5G3N1:getMessageTypeDef|req:parameters|req:parameterName","string")
CkXml::ckUpdateChildContent(xml,"soapenv:Body|WL5G3N1:getMessageTypeDef|req:parameters|req:comparisonOp","string")
CkXml::ckUpdateChildContent(xml,"soapenv:Body|WL5G3N1:getMessageTypeDef|req:parameters|req:parameterValue","string")
CkXml::ckUpdateChildContent(xml,"soapenv:Body|WL5G3N1:getMessageTypeDef|req:parameters|req:logicalOp","string")
; In a SOAP HTTP request, including the XML declaration (<?xml version="1.0" encoding="UTF-8"?>) in the XML body is generally not required.
CkXml::setCkEmitXmlDecl(xml, 0)
soapRequestBody.s = CkXml::ckGetXml(xml)
endpoint.s = "http://tdl.integration.aws.fema.gov/IPAWS_CAPService/IPAWS"
soapAction.s = "http://gov.fema.ipaws.services/IPAWS_CAPService/getMessage"
; For SOAP requests, the standard Content-Type is usually set to "text/xml" or "application/soap+xml"
contentType.s = "text/xml"
http.i = CkHttp::ckCreate()
If http.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
CkHttp::ckClearHeaders(http)
CkHttp::ckSetRequestHeader(http,"Content-Type",contentType)
CkHttp::ckSetRequestHeader(http,"SOAPAction",soapAction)
resp.i = CkHttp::ckPostXml(http,endpoint,soapRequestBody,"utf-8")
If CkHttp::ckLastMethodSuccess(http) = 0
Debug CkHttp::ckLastErrorText(http)
Debug "Failed to send SOAP request."
CkXml::ckDispose(xml)
CkHttp::ckDispose(http)
ProcedureReturn
EndIf
; Get the XML response body.
responseXml.i = CkXml::ckCreate()
If responseXml.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
CkHttpResponse::ckGetBodyXml(resp,responseXml)
statusCode.i = CkHttpResponse::ckStatusCode(resp)
Debug "response status code: " + Str(statusCode)
CkHttpResponse::ckDispose(resp)
; If the status code does not indicate succcess, then show the response XML,
; which probably contains error information.
If statusCode <> 200
Debug CkXml::ckGetXml(responseXml)
CkXml::ckDispose(xml)
CkHttp::ckDispose(http)
CkXml::ckDispose(responseXml)
ProcedureReturn
EndIf
Debug CkXml::ckGetXml(responseXml)
; Parse the successful SOAP response XML.
; This is a sample of the response XML, but the namespace prefixes will be different.
; We can parse the result using "*" for the namespace prefixes (see below).
identifier.s = CkXml::ckGetChildContent(responseXml,"*:Body|*:messageResponseTypeDef|*:alert|*:identifier")
sender.s = CkXml::ckGetChildContent(responseXml,"*:Body|*:messageResponseTypeDef|*:alert|*:sender")
sent.s = CkXml::ckGetChildContent(responseXml,"*:Body|*:messageResponseTypeDef|*:alert|*:sent")
status.s = CkXml::ckGetChildContent(responseXml,"*:Body|*:messageResponseTypeDef|*:alert|*:status")
msgType.s = CkXml::ckGetChildContent(responseXml,"*:Body|*:messageResponseTypeDef|*:alert|*:msgType")
source.s = CkXml::ckGetChildContent(responseXml,"*:Body|*:messageResponseTypeDef|*:alert|*:source")
scope.s = CkXml::ckGetChildContent(responseXml,"*:Body|*:messageResponseTypeDef|*:alert|*:scope")
restriction.s = CkXml::ckGetChildContent(responseXml,"*:Body|*:messageResponseTypeDef|*:alert|*:restriction")
addresses.s = CkXml::ckGetChildContent(responseXml,"*:Body|*:messageResponseTypeDef|*:alert|*:addresses")
code.s = CkXml::ckGetChildContent(responseXml,"*:Body|*:messageResponseTypeDef|*:alert|*:code")
note.s = CkXml::ckGetChildContent(responseXml,"*:Body|*:messageResponseTypeDef|*:alert|*:note")
references.s = CkXml::ckGetChildContent(responseXml,"*:Body|*:messageResponseTypeDef|*:alert|*:references")
incidents.s = CkXml::ckGetChildContent(responseXml,"*:Body|*:messageResponseTypeDef|*:alert|*:incidents")
language.s = CkXml::ckGetChildContent(responseXml,"*:Body|*:messageResponseTypeDef|*:alert|*:info|*:language")
category.s = CkXml::ckGetChildContent(responseXml,"*:Body|*:messageResponseTypeDef|*:alert|*:info|*:category")
v_event.s = CkXml::ckGetChildContent(responseXml,"*:Body|*:messageResponseTypeDef|*:alert|*:info|*:event")
responseType.s = CkXml::ckGetChildContent(responseXml,"*:Body|*:messageResponseTypeDef|*:alert|*:info|*:responseType")
urgency.s = CkXml::ckGetChildContent(responseXml,"*:Body|*:messageResponseTypeDef|*:alert|*:info|*:urgency")
severity.s = CkXml::ckGetChildContent(responseXml,"*:Body|*:messageResponseTypeDef|*:alert|*:info|*:severity")
certainty.s = CkXml::ckGetChildContent(responseXml,"*:Body|*:messageResponseTypeDef|*:alert|*:info|*:certainty")
audience.s = CkXml::ckGetChildContent(responseXml,"*:Body|*:messageResponseTypeDef|*:alert|*:info|*:audience")
valueName.s = CkXml::ckGetChildContent(responseXml,"*:Body|*:messageResponseTypeDef|*:alert|*:info|*:eventCode|*:valueName")
value.s = CkXml::ckGetChildContent(responseXml,"*:Body|*:messageResponseTypeDef|*:alert|*:info|*:eventCode|*:value")
effective.s = CkXml::ckGetChildContent(responseXml,"*:Body|*:messageResponseTypeDef|*:alert|*:info|*:effective")
onset.s = CkXml::ckGetChildContent(responseXml,"*:Body|*:messageResponseTypeDef|*:alert|*:info|*:onset")
expires.s = CkXml::ckGetChildContent(responseXml,"*:Body|*:messageResponseTypeDef|*:alert|*:info|*:expires")
senderName.s = CkXml::ckGetChildContent(responseXml,"*:Body|*:messageResponseTypeDef|*:alert|*:info|*:senderName")
headline.s = CkXml::ckGetChildContent(responseXml,"*:Body|*:messageResponseTypeDef|*:alert|*:info|*:headline")
description.s = CkXml::ckGetChildContent(responseXml,"*:Body|*:messageResponseTypeDef|*:alert|*:info|*:description")
instruction.s = CkXml::ckGetChildContent(responseXml,"*:Body|*:messageResponseTypeDef|*:alert|*:info|*:instruction")
web.s = CkXml::ckGetChildContent(responseXml,"*:Body|*:messageResponseTypeDef|*:alert|*:info|*:web")
contact.s = CkXml::ckGetChildContent(responseXml,"*:Body|*:messageResponseTypeDef|*:alert|*:info|*:contact")
valueName = CkXml::ckGetChildContent(responseXml,"*:Body|*:messageResponseTypeDef|*:alert|*:info|*:parameter|*:valueName")
value = CkXml::ckGetChildContent(responseXml,"*:Body|*:messageResponseTypeDef|*:alert|*:info|*:parameter|*:value")
resourceDesc.s = CkXml::ckGetChildContent(responseXml,"*:Body|*:messageResponseTypeDef|*:alert|*:info|*:resource|*:resourceDesc")
mimeType.s = CkXml::ckGetChildContent(responseXml,"*:Body|*:messageResponseTypeDef|*:alert|*:info|*:resource|*:mimeType")
size.s = CkXml::ckGetChildContent(responseXml,"*:Body|*:messageResponseTypeDef|*:alert|*:info|*:resource|*:size")
uri.s = CkXml::ckGetChildContent(responseXml,"*:Body|*:messageResponseTypeDef|*:alert|*:info|*:resource|*:uri")
derefUri.s = CkXml::ckGetChildContent(responseXml,"*:Body|*:messageResponseTypeDef|*:alert|*:info|*:resource|*:derefUri")
digest.s = CkXml::ckGetChildContent(responseXml,"*:Body|*:messageResponseTypeDef|*:alert|*:info|*:resource|*:digest")
areaDesc.s = CkXml::ckGetChildContent(responseXml,"*:Body|*:messageResponseTypeDef|*:alert|*:info|*:area|*:areaDesc")
polygon.s = CkXml::ckGetChildContent(responseXml,"*:Body|*:messageResponseTypeDef|*:alert|*:info|*:area|*:polygon")
circle.s = CkXml::ckGetChildContent(responseXml,"*:Body|*:messageResponseTypeDef|*:alert|*:info|*:area|*:circle")
valueName = CkXml::ckGetChildContent(responseXml,"*:Body|*:messageResponseTypeDef|*:alert|*:info|*:area|*:geocode|*:valueName")
value = CkXml::ckGetChildContent(responseXml,"*:Body|*:messageResponseTypeDef|*:alert|*:info|*:area|*:geocode|*:value")
altitude.s = CkXml::ckGetChildContent(responseXml,"*:Body|*:messageResponseTypeDef|*:alert|*:info|*:area|*:altitude")
ceiling.s = CkXml::ckGetChildContent(responseXml,"*:Body|*:messageResponseTypeDef|*:alert|*:info|*:area|*:ceiling")
CkXml::ckDispose(xml)
CkHttp::ckDispose(http)
CkXml::ckDispose(responseXml)
ProcedureReturn
EndProcedure