in reply to Re^5: Consuming A Web Service
in thread Consuming A Web Service

I had tried my $req = HTTP::Request->new(GET => $endpoint, Accept => 'application/xml'); using the OP's server, but I still got the "Bad header argument" error. When I switched to using the separate $req->header, then it started working.

Looking at HTTP::Request (quoted below), I originally read it the same way as you, that new() required pairs, and was surprised the code above would still give the error. But on a re-read (underline added):

Constructs a new HTTP::Request object describing a request on the object $uri using method $method. The $method argument must be a string. The $uri argument can be either a string, or a reference to a URI object. The optional $header argument should be a reference to an HTTP::Headers object or a plain array reference of key/value pairs. The optional $content argument should be a string of bytes.

The $header should either be an object or an arrayref. The $content is the content of the request, not of the header. Running the OP code with the headers with your changes, but in an arrayref, eliminates the error: my $req = HTTP::Request->new(GET => $endpoint, [Accept => 'application/xml']);

Replies are listed 'Best First'.
Re^7: Consuming A Web Service
by NetWallah (Canon) on Nov 03, 2016 at 20:12 UTC
    Very nice (++). Thanks for the research, and "Final Answer".

            ...it is unhealthy to remain near things that are in the process of blowing up.     man page for WARP, by Larry Wall

      Thanks everyone for your help on this and working to clarify.

      Regards,
      pkupnorth