Sample code for 30+ languages & platforms
Delphi DLL

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 Delphi DLL Downloads

Delphi DLL
uses
    Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
    Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Http, HttpResponse, Xml;

...

procedure TForm1.Button1Click(Sender: TObject);
var
success: Boolean;
http: HCkHttp;
xml: HCkXml;
httpRequestBody: PWideChar;
resp: HCkHttpResponse;
xmlResponse: HCkXml;

begin
success := False;

// This example assumes the Chilkat HTTP API to have been previously unlocked.
// See Global Unlock Sample for sample code.

http := CkHttp_Create();

// Set the "Accept" header to tell the web server that we'll accept an XML response.
CkHttp_putAccept(http,'application/xml');
// Tell Chilkat to cache any received cookies to files in a particular directory
CkHttp_putCookieDir(http,'c:/qa_data/cookies');
CkHttp_putSaveCookies(http,True);

xml := CkXml_Create();
CkXml_putTag(xml,'LogOnModel');
CkXml_NewChild2(xml,'UserName','win-air-freight-user@company.com');
CkXml_NewChild2(xml,'Password','win-air-freight-password');
CkXml_putEmitXmlDecl(xml,False);

httpRequestBody := CkXml__getXml(xml);
resp := CkHttpResponse_Create();
success := CkHttp_HttpStr(http,'POST','http://integration.winwebconnect.com/api/v1/Login',httpRequestBody,'utf-8','application/xml',resp);
if (success = False) then
  begin
    Memo1.Lines.Add(CkHttp__lastErrorText(http));
    Exit;
  end;

xmlResponse := CkXml_Create();
CkXml_LoadXml(xmlResponse,CkHttpResponse__bodyStr(resp));

// See below for an example XML response body.
Memo1.Lines.Add('Response Body:');
Memo1.Lines.Add(CkXml__getXml(xmlResponse));
Memo1.Lines.Add('---');

Memo1.Lines.Add('Response Header:');
Memo1.Lines.Add(CkHttpResponse__header(resp));

// 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
Memo1.Lines.Add('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>
// 

CkHttp_Dispose(http);
CkXml_Dispose(xml);
CkHttpResponse_Dispose(resp);
CkXml_Dispose(xmlResponse);

end;