Hi, All!

Code is simple, but I can't return custom content-type with
SERVER_ERROR:

sub handler {

  ..... $self->response is HTTP::Response object

  if ($self->response->is_success) {
    $self->response->headers->scan(sub { $r->header_out(@_) });
    $r->send_http_header(join '; ', $self->response->content_type);
    $r->print($self->response->content);
  } else {
    $self->response->headers->scan(sub { $r->err_header_out(@_) });
    $r->content_type(join '; ', $self->response->content_type);
    $r->custom_response($self->response->code, 
                        $self->response->content);
  }
  $self->response->code;
}

In ALL cases (200OK and 500ServerError) I need to return error code,
content, content-type and optional headers.

Regardless of my settings content-type is always "text/html;
charset=iso-8859-1" which I expect to be "text/xml; charset=utf-8":

HTTP/1.1 500 Internal Server Error
Connection: close
Date: Sun, 29 Jul 2001 16:01:20 GMT
Server: Apache/1.3.12 (Win32) mod_perl/1.23
Content-Length: 642
Content-Type: text/html; charset=iso-8859-1
Client-Date: Sun, 29 Jul 2001 16:01:22 GMT
Client-Peer: 127.0.0.1:80
SOAPServer: SOAP::Lite/Perl/0.51

<?xml version="1.0" encoding="UTF-8"?><SOAP-ENV:Envelope
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/";
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance";
xmlns:xsd="http://www.w3.org/1999/XMLSchema";><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode
xsi:type="xsd:string">SOAP-ENV:Client</faultcode><faultstring
xsi:type="xsd:string">Failed to locate method (echo1) in class
(My::Parameters) at C:/Perl/site/5.6.0/lib/SOAP/Lite.pm line 1997.
</faultstring></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>

What am I doing wrong and what is the correct way to specify custom
content-type? Everything works fine with 200OK. Thanks a lot.

Best wishes, Paul. 

__________________________________________________
Do You Yahoo!?
Make international calls for as low as $.04/minute with Yahoo! Messenger
http://phonecard.yahoo.com/

Reply via email to