This subroutine prepares
headersin required format(Linked list) for an HTTP request.
This subroutine prepares a linked list of
headersfor an HTTP request using the fortran-curl package. The function takes an array ofpair_typeobjects(i.e.req_headers) that contain the
key-value pairs of the headers to include in the request. It iterates over the array and constructs a string for each header in the formatkey:value. The subroutine then appends each string to the linked list using thecurl_slist_appendfunction. The resulting linked list is returned via theheader_list_ptrargument.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(c_ptr), | intent(out) | :: | header_list_ptr | A  | ||
| type(pair_type), | intent(in), | allocatable | :: | req_headers(:) | The  | 
    subroutine prepare_request_header_ptr(header_list_ptr, req_headers)
        
        !!> This subroutine prepares `headers` in required format(Linked list) for an HTTP request.
        !!____
        !!> This subroutine prepares a **linked list** of `headers` for an HTTP request using the 
        !!> [fortran-curl](https://github.com/interkosmos/fortran-curl) package. 
        !!> The function takes an array of `pair_type` objects(i.e. `req_headers`) that contain the  
        !!> **key-value** pairs of the headers to include in the request.
        !!> It iterates over the array and constructs a string for each header in the format **`key:value`**.
        !!> The subroutine then appends each string to the linked list using the `curl_slist_append` function.
        !!> The resulting linked list is returned via the `header_list_ptr` argument.
        
        type(c_ptr), intent(out) :: header_list_ptr
            !! A `Pointer` that is allocated and points to a linked list of headers.
        type(pair_type), allocatable, intent(in) :: req_headers(:)
            !! The `headers` to be included in the request.
        character(:), allocatable :: h_name, h_val, final_header_string
        integer :: i
        do i = 1, size(req_headers)
            h_name = req_headers(i)%name
            h_val = req_headers(i)%value
            final_header_string = h_name // ':' // h_val 
            header_list_ptr = curl_slist_append(header_list_ptr, final_header_string)
        end do
    end subroutine prepare_request_header_ptr