Sample code for 30+ languages & platforms
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

DataFlex
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