IDOL Server 12.12

# 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 IDOL 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 IDOL 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 http://curl.haxx.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 IDOL Content component runs.
`IndexPort` | is the index port for the IDOL Content component you send the data to.
`Filename` | is the name of the file that you want to index into the IDOL 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

    # 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 2022 Micro Focus or one of its affiliates
Version 12.12 | Last updated June 2022

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 swpdl.idoldocsfeedback@microfocus.com.

We appreciate your feedback!

Product: IDOL Server 12.12

Topic Title: Send Data with a POST Method