DataFlex
DataFlex
WIN Air Freight Login POST Request
See more HTTP Misc Examples
Demonstrates the "login" POST method endpoint to obtain an initial authToken as a cookie. Each API request will return a fresh authToken cookie which must be passed back to WIN in the next API request.Chilkat DataFlex Downloads
Use ChilkatAx-win32.pkg
Procedure Test
Boolean iSuccess
Handle hoHttp
Handle hoXml
String sHttpRequestBody
Variant vResp
Handle hoResp
Handle hoXmlResponse
String sTemp1
Move False To iSuccess
// This example assumes the Chilkat HTTP API to have been previously unlocked.
// See Global Unlock Sample for sample code.
Get Create (RefClass(cComChilkatHttp)) To hoHttp
If (Not(IsComObjectCreated(hoHttp))) Begin
Send CreateComObject of hoHttp
End
// Set the "Accept" header to tell the web server that we'll accept an XML response.
Set ComAccept Of hoHttp To "application/xml"
// Tell Chilkat to cache any received cookies to files in a particular directory
Set ComCookieDir Of hoHttp To "c:/qa_data/cookies"
Set ComSaveCookies Of hoHttp To True
Get Create (RefClass(cComChilkatXml)) To hoXml
If (Not(IsComObjectCreated(hoXml))) Begin
Send CreateComObject of hoXml
End
Set ComTag Of hoXml To "LogOnModel"
Send ComNewChild2 To hoXml "UserName" "win-air-freight-user@company.com"
Send ComNewChild2 To hoXml "Password" "win-air-freight-password"
Set ComEmitXmlDecl Of hoXml To False
Get ComGetXml Of hoXml To sHttpRequestBody
Get Create (RefClass(cComChilkatHttpResponse)) To hoResp
If (Not(IsComObjectCreated(hoResp))) Begin
Send CreateComObject of hoResp
End
Get pvComObject of hoResp to vResp
Get ComHttpStr Of hoHttp "POST" "http://integration.winwebconnect.com/api/v1/Login" sHttpRequestBody "utf-8" "application/xml" vResp To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoHttp To sTemp1
Showln sTemp1
Procedure_Return
End
Get Create (RefClass(cComChilkatXml)) To hoXmlResponse
If (Not(IsComObjectCreated(hoXmlResponse))) Begin
Send CreateComObject of hoXmlResponse
End
Get ComBodyStr Of hoResp To sTemp1
Get ComLoadXml Of hoXmlResponse sTemp1 To iSuccess
// See below for an example XML response body.
Showln "Response Body:"
Get ComGetXml Of hoXmlResponse To sTemp1
Showln sTemp1
Showln "---"
Showln "Response Header:"
Get ComHeader Of hoResp To sTemp1
Showln sTemp1
// An example resp header:
//
// Cache-Control: no-cache
// Pragma: no-cache
// Content-Length: 1671
// Content-Type: application/xml; charset=utf-8
// Expires: -1
// Set-Cookie: authToken=1467EC8A5D2F1390F89F9DB65AAAAB5C709D1AE7275B72B6DDBDA44C54AE5D5C19648F76AAB12C9D9E2690F0DD69BE6E1C0F6D725C9392E99E1904A6B76D7852948C01A49E2FF20914092843C062778B91EE7497DDF4C1AC4117110E414195C9726E3467BD98094437044A8E94F1BCA1; path=/; HttpOnly
// Access-Control-Allow-Origin: http://integration.winwebconnect.com
// Date: Mon, 21 Nov 2016 21:29:57 GMT
Showln "Success."
// An example XML response body:
// -----------------------------
// <?xml version="1.0" encoding="utf-8" ?>
// <AuthResponseDTO>
// <LastLogin>2016-11-21T21:29:58.229986Z</LastLogin>
// <UserDetails>
// <ContactID>16528</ContactID>
// <AgentID>96592</AgentID>
// <FirstName>System</FirstName>
// <LastName>User</LastName>
// <Email>test@company.com</Email>
// <JobTitle />
// <ContactNumber />
// <IsActivated>true</IsActivated>
// <OperatedBy />
// <AddressBookID />
// <Permissions>integrationapi</Permissions>
// <ContactType>Primary</ContactType>
// <UCTReferer />
// <UCTIsCaptcha>false</UCTIsCaptcha>
// <UATReferer />
// <UATIsCaptcha>false</UATIsCaptcha>
// <Username>test@company.com</Username>
// </UserDetails>
// <AgentDetails>
// <AgentID>96592</AgentID>
// <AgentName>My Company</AgentName>
// <AccountNumber />
// <IATACode />
// <Address1>P.O. Box 555</Address1>
// <Address2 />
// <Place />
// <StateProvince>NC</StateProvince>
// <City>
// <Code>USBFO</Code>
// <Name>Raleigh</Name>
// </City>
// <Country>
// <Code>US</Code>
// <Name>US - United States</Name>
// </Country>
// <ZipCode>28522</ZipCode>
// <Email />
// <Phone />
// <Fax />
// <IsEAirwayBill>false</IsEAirwayBill>
// <EYProgram>false</EYProgram>
// <WhiteLabelMobileApp>false</WhiteLabelMobileApp>
// <Limits>
// <UCTSearchesRemaining />
// <UATSearchesRemaining />
// <AgentID>96592</AgentID>
// </Limits>
// <Permissions>integrationapi</Permissions>
// </AgentDetails>
// <UserPreferences>
// <AboutUs />
// <MOTD />
// <Language>en-US</Language>
// <Currency>USD</Currency>
// <UnitSystem>Metric</UnitSystem>
// <TimeZone>
// <TheID>450</TheID>
// <KeyIdentifier>TimeZone</KeyIdentifier>
// <KeyValue>GMT</KeyValue>
// <KeyDescription>(GMT-11:00)UTC-11</KeyDescription>
// <IsDefault>false</IsDefault>
// </TimeZone>
// <DateFormat>dd-MMM-yyyy</DateFormat>
// <TimeFormat>h:mm t</TimeFormat>
// <Controls />
// <ContactEmail />
// </UserPreferences>
// <Version>
// <APIVersion>3.4.0.0ah8</APIVersion>
// <UIVersion>3.1</UIVersion>
// </Version>
// <NumNonMSDBContacts />
// </AuthResponseDTO>
//
End_Procedure