Sample code for 30+ languages & platforms
Perl

Adding Cookies to an HTTP Request

See more HTTP Examples

Demonstrates how to add one or more cookies to an HTTP request.

Chilkat Perl Downloads

Perl
use chilkat();

$success = 0;

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

$http = chilkat::CkHttp->new();

# The Cookie header field has this format:
# Cookie: name1=value1 [; name2=value2] ...

# Build an HTTP POST request:
$req = chilkat::CkHttpRequest->new();
$req->SetFromUrl("http://www.chilkatsoft.com/echoPost.asp");
$req->put_HttpVerb("POST");

$req->AddParam("param1","value1");
$req->AddParam("param2","value2");

# To add cookies to any HTTP request sent by a Chilkat HTTP method
# that uses an HTTP request object, add the cookies to the
# request object by calling AddHeader.  

# Add two cookies:
$req->AddHeader("Cookie","user=\"mary\"; city=\"Chicago\"");

# Send the HTTP POST.  
# (The cookies are sent as part of the HTTP header.)

$domain = "www.chilkatsoft.com";
$port = 80;
$ssl = 0;
$resp = chilkat::CkHttpResponse->new();
$success = $http->HttpSReq($domain,$port,$ssl,$req,$resp);
if ($success == 0) {
    print $http->lastErrorText() . "\r\n";
    exit;
}

# Display the HTML body of the response.
if ($resp->get_StatusCode() == 200) {
    # Show the last HTTP request header sent, which should include
    # our cookies...
    print $http->lastHeader() . "\r\n";
}
else {
    print "HTTP Response Status = " . $resp->get_StatusCode() . "\r\n";
}

print "---------------------" . "\r\n";

# Some Chilkat HTTP methods do not use an HTTP request object. 
# For these methods, such as for QuickGetStr, cookies (or any HTTP request header) 
# are added by calling SetRequestHeader.  
$http->SetRequestHeader("Cookie","user=\"mary\"; city=\"Chicago\"");

$html = $http->quickGetStr("http://www.w3.org/");
if ($http->get_LastMethodSuccess() != 1) {
    print $http->lastErrorText() . "\r\n";
}
else {
    # Show the last HTTP request header sent, which should include
    # our cookies...
    print $http->lastHeader() . "\r\n";
}