One more thing. Did you know that there are SOAP-Modules available: - http://search.cpan.org/~rkobes/Apache2-SOAP-0.72/ - http://search.cpan.org/~byrne/SOAP-Lite-0.69/
Tom Erland Nylend wrote: >Thanks for replying, > >On 2006-08-25, 13:04, Perrin Harkins wrote: > > >>HTTP has defined roles of client and server. You can't make HTTP >>requests and respond to other HTTP requests on a single socket >>connection, at least not without writing your own protocol which will >>not really be HTTP. >> >> > >I may have explained that awkwardly. I realize that there has to be >one client, and one server. The CPE is the client, sending HTTP POST >_queries_ with some data. The remote management server (apache server) >is sending HTTP POST _replies_ back, but those also contains data. > >This is the logic: > >CPE client: > POST /path/to/resource HTTP/1.1 > Content-Type: text/xml; charset=ISO-8859-1 > > ...soap data... > >server: > HTTP/1.1 200 OK > Content-Type: text/xml;charset=utf-8 > > ...soap data... > >CPE client: > POST /path/to/resource HTTP/1.1 > Content-Type: text/xml; charset=ISO-8859-1 > > ...soap data... > >server: > HTTP/1.1 200 OK > Content-Type: text/xml;charset=utf-8 > > ...soap data... > > >.. and so on .. data is flowing in both directions, but there is >still one HTTP client (the CPE), and one server (the apache server). > > > >>Are you sure that they are really supposed to swap roles? >> >> > >I don't think they should. The CPE is the HTTP client, and the >apache server is the HTTP server. > > > >>Normally with SOAP one client makes a POST request and the server >>responds with a response body. The connection can be kept open >>with normal HTTP 1.1 mechanisms (all done for you by apache) [...] >> >> > >Great. I've set "KeepAlive On" in httpd.conf .. and I'm also this >config: > >Alias /perl/ /home/en/modperl/ >PerlModule ModPerl::Registry ><Location /perl> > #SetEnv proxy-sendcl 1 > SetHandler perl-script > PerlResponseHandler ModPerl::Registry > Options +ExecCGI > PerlOptions +ParseHeaders > Order allow,deny > Allow from all ></Location> > >The problem I am having is that I don't know how to access those >HTTP POSTS. In the examples I've read in the documentation, it says >that the (first) request can be accessed by: > >my $r = Apache2::RequestUtil->request; > >.. but when I have read the headers and the data in the first POST >request, I'm not sure what to do in order to access the _second_ >POST query. > >Can I throw the first $r away, and initialize a new one, or can I >reset the first one, making it ready to receive a new HTTP request? > >As I'm writing this, I think that one one solution is to send a >session cookie to the CPE in the response to the the first HTTP >POST, store the session ID in some way locally, and then exit the >script. The next HTTP POST from the same CPE will then include a >session ID, which I can use to keep track of all the HTTP POSTS from >the same host. > >I'll try that :-) > > > >>but if you really need to have the server make a request to the >>client you will need to use something like LWP on a separate >>socket. >> >> > >It doesn't have to make a (HTTP) request, I think. The server can >communicate back to the client in the HTTP POST _response_. > > >