in reply to Question: Send a chunk of XML to a server

Sure. LWP can do this for you.

my $req = HTTP::Request->new( POST => 'http://some.site/app' ); $req->content_type( 'text/xml' ); $req->content( $myxml ); ...
It's up to the server side on how to interpret the data coming to them. They may or may not need the content type set to 'text/xml'. If they're using CGI, you need to set the content_type to something other than 'application/x-www-form-urlencoded' or 'multipart/form-data'. In this example, by setting the content_type to 'text/xml', CGI will not try to parse the incoming stream (See the section 'HANDLING NON-URLENCODED ARGUMENTS' in CGI). But ... if they used something other than perl or CGI, they should tell you what the content_type should be.

-derby

Update I probably wasn't clear. There is no inherent tie between a POST and forms. Forms are normally POSTed (but they don't need to be) and POSTs are normally handed off to form processors. But that's just convention. Just as you can use a GET to send form data (not that I recommend it), you can use a POST to do thinks other than form processing.

Replies are listed 'Best First'.
Re^2: Question: Send a chunk of XML to a server
by Anonymous Monk on Nov 09, 2009 at 21:46 UTC
    s/convention/CGI protocol/
      No, derby is correct. The CGI protocol is agnostic to type of data being posted. It doesn't have to be form data. That's why it provides a means of specifying the type of the content being posted (env var CONTENT_TYPE).

      There's nothing in the CGI specification that says a form submission must be a POST or that *all* POST submissions are forms. Am I missing something AM?

      -derby
        Kinda. There are no forms on the server, just data. POST is not a "safe method", its used to change something on the server. GET is a "safe method", its only used to query the server, to retrieve data from server. All this is part of the standard protocol called CGI. It is not just convention, its the rules.