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