Category Component 25.3
Category Component Help

# Send Data with a POST Method

You must send the `DREADDDATA` action using a POST request method. There are two ways to send a POST request over a socket to the Content component:

- use the Curl command-line tool

- use a script

NOTE: You can use these methods for other actions that require a POST request method, such as `DREREPLACE`, but you must modify the script.

## Use the cURL Command-Line Tool

Curl is an open source command-line tool for transferring files with URL syntax. If you have cURL installed on your computer, and a command prompt that allows you to use new lines, you can use a cURL request to send the action. For example:

    curl "http://host:port/DREADDDATA?" -d "
    #DREREFERENCE Test
    #DREDBNAME Default
    #DREENDDOC
    #DREENDDATA
    "

Alternatively, you can add the `#DREENDDATA` tag into the IDX or XML document, or gzipped IDX or XML file, after the data to index. The `#DREENDDATA` tag must be uncompressed. Then you can use a cURL command to send this document to the Content component.

For example:

    curl --data-binary @filename "http://host:port/DREADDDATA?"

where `filename` is the name of the IDX, XML, or gzipped IDX or XML file to index.

For information on cURL, refer to https://curl.se/.

## Use a Script

Another method of sending a POST request is to use a script to open a socket and send the data. The following is an example script in the Perl programming language that sends a `DREADDDATA` index action to a specified port.

To run the script

- Open a command prompt and type the following command:

    PerlScript.pl HostNameIndexPortFilename [Parameters]

where:

`PerlScript.pl` | is the name of the file that contains the Perl script that performs the `DREADDDATA` index action.
`HostName` | is the host name or IP address of the host on which the Content component runs.
`IndexPort` | is the index port for the Content component you send the data to.
`Filename` | is the name of the file that you want to index into the Content component by using the `DREADDDATA` action. You can use an IDX, XML, or gzipped IDX or XML file.
`Parameters` | are any optional parameters that you use for the `DREADDDATA` action.

Example Perl Script

Copy

    # Performs a /DREADDDATA index action
    use IO::Socket;

    if (@ARGV<3)
    {
       print "Usage: doDreAddData.pl <hostname> <indexport> <filename> [parameters]\n";
       exit;
    }

    my $host = $ARGV[0];
    my $port = $ARGV[1];
    my $filename = $ARGV[2];
    my $params = $ARGV[3];
    my $footer = "\r\n#DREENDDATA\r\n\r\n";
    my $iaddr = inet_aton($host) or die "$!";
    my $paddr = sockaddr_in($port,$iaddr);
    my $proto = getprotobyname('tcp');

    socket(SOCK, PF_INET, SOCK_STREAM, $proto) or die "socket: $!";
    connect(SOCK, $paddr) or die "connect: $!";

    my $filesize = -s $filename;
    $filesize += length($footer);
    open (FILE, $filename) or die "couldn't open file: $!";

    print SOCK "POST /DREADDDATA?$params HTTP/1.1\r\n";
    print SOCK "Connection: close\r\n";
    print SOCK "Content-Length: $filesize\r\n\r\n";
    while (<FILE>)
    {
       print SOCK $_;
    }
    print SOCK $footer;

    SOCK->autoflush(1);

    while(<SOCK>){
       print $_;
    }

    close FILE;
    close SOCK;

Copyright 2025 Open Text
Version 25.3 | Last updated July 2025

Send documentation feedback

Close

Send documentation feedback

To send feedback using your default email client, open an email window.

Otherwise, send your feedback and the information below to MFI-swpdl.idoldocsfeedback@opentext.com.

We appreciate your feedback!

Product: Knowledge Discovery Category Component 25.3

Topic Title: Send Data with a POST Method